[QUOTE=TheNerdPest14;47624420]To be honest, I'm a shit programmer; to program ANYTHING, I have to look up the API. Always. When I do, I can program near anything though. I don't know where I was going with that.[/QUOTE]
That's normal. Now I'm a shit programmer. I'm presented with a task, and if I can't immediately do it I probably give up on it, or put it on a very long back-burner.
[QUOTE=ScottyWired;47624663]Heck my course had a python exam and we could use any websites for help, we just couldn't talk to people in the room or online.[/QUOTE]
That sounds really sketchy. Even our introductory course in C++ didn't allow internet usage or any other kind of help material. The course should teach you everything you need to know (and then some) to perform the exam. Otherwise it's a shit exam (or shit course).
I tend to overcomplicate things a lot. Keep it simple, stupid. Words to live by sometimes.
For example, in C# 4.0 there's all these delegates and lambda functions and all, which allow you to pass functions as variables. Sometimes I think, 'How can I architect this as sophisticated as possible?', and I would have wasted 25 minutes just thinking out how I can architect something while I could've already got it working with quick and dirty programming. It works, but it ain't nothing fancy, and it sure as hell ain't dynamic. It does what it's supposed to inside the boundaries I gave it then, but if the system I made would have to operate beyond that, crazy stuff happens.
[editline]1st May 2015[/editline]
A lot of times you just have to ask yourself, 'is it really worth the time to cook up fancy systems?' Of course it depends on the case, but I discovered that most of the time that I program something, it just isn't.
[QUOTE=TheNerdPest14;47624420]To be honest, I'm a shit programmer; to program ANYTHING, I have to look up the API. Always. When I do, I can program near anything though. I don't know where I was going with that.[/QUOTE]
Utterly normal, why do you think API's and Intellisense(and variuants in thereof) are a thing? Programmers ain't got time for that shit, they're busy trying to make a button class that they will only ever use once. Programming is about making shit, not being able to remember lots of stuff, craftsmen don't get flak for having to use a ruler to measure shit, or using a CnC machine to cut a perfect square.
At the end of the day so long as the program does what it's supposed to do without crashing then you dun good.
Like anything in life, there are 100s of ways to reach a goal. Some are more sophisticated than others, but it's the same with programming. I've spent the last year or so learning C# on the side and it's been a very interesting experience. I had the realization that a programmer could write something that works, even though they may not have the firmest of grasps on how to do it [i]the proper way[/i].
[QUOTE=DeEz;47634585]That sounds really sketchy. Even our introductory course in C++ didn't allow internet usage or any other kind of help material. The course should teach you everything you need to know (and then some) to perform the exam. Otherwise it's a shit exam (or shit course).[/QUOTE]
I fail to see the reason why you would need to remember exact C++ syntax rules. That's pointless headache.
Programming is a language, just like any other language, a lot of it is memorization. I could understand the rule of no internet access for help for a class.
[QUOTE=ThePanther;47639691]Programming is a language, just like any other language, a lot of it is memorization. I could understand the rule of no internet access for help for a class.[/QUOTE]
Most of the people who speak various languages do not know all the rules of it, just basics. And then there are languages like English...
But the point is, what you need to know is basic syntax that is general amongst most programing languages. As for knowledge of languages, it's the knowledge of specifics and details that deviate from the standard syntax. Also, sometimes IDEs are arse, so having internet connection for syntax check could be extremely useful, even for examination.
Even better question, why would you even have an in-class exam, instead of a final project?
[QUOTE=DeEz;47634585]That sounds really sketchy. Even our introductory course in C++ didn't allow internet usage or any other kind of help material. The course should teach you everything you need to know (and then some) to perform the exam. Otherwise it's a shit exam (or shit course).[/QUOTE]
Written exams for programming are usually pretty stupid anyways, in my opinion. Practical assignments (and preferably not under duress) are a much more useful learning experience, and you actually sometimes end up with something you can use for a portfolio or future work.
[QUOTE=ThePanther;47639691]Programming is a language, just like any other language, a lot of it is memorization. I could understand the rule of no internet access for help for a class.[/QUOTE]
I write code in at least 7 different languages. I often have to look up syntax and basic functionality, even for common things like for loops. This goes especially for things I don't use much.
Programming languages are NOT like spoken languages, not even close. Any education in programming should focus on understanding basic principles common to most/all languages, not memorizing the exact syntax of switch statements (if your language of choice even has them).
I mean do you really intend to make people memorize what values can come out true/false in each language? Go ahead and memorize the javascript truth table. That's a load of fun.
We've had programming exams on [I]paper[/I] in my university
[QUOTE=Rufia;47632148]I don't really understand this sentiment. When I hear that someone is really talented I just envision them as being really good at their craft, but that doesn't mean they were born really good at their craft - they had to work for it.[/QUOTE]
Talent to me is a natural affinity for the subject taken to a higher level via application of skills learned over time. Someone born with inherent talent [I]and[/I] skills better fits the prodigy definition.
[QUOTE=NotMeh;47639866]We've had programming exams on [I]paper[/I] in my university[/QUOTE]
Ehhhh, that's seems pretty normal; at least for me and my friends in North America.
As for levels of experience programming, I cannot remember where I got this from, but the saying goes that novice programmers worry about language and syntax, experienced programmers worry about solving the problem no matter the complexity, and veteran programmers worry about making code readable and simple.
You should never really be hung up about trying to memorize every single function and class that exists in a language; it's all fine as long as you know there exist such tools to solve the problem and have a good understanding about what needs to be done. Personally, I feel like I'm in the experienced programmer phase (given that my code can be pretty messy), but I don't get depressed over it. It takes some time to adapt good practices and standards, especially in a work environment with code source control (you don't do much of a service to others if you're the only one who can read your code without documentation).
[QUOTE=FlakAttack;47639863]I write code in at least 7 different languages. I often have to look up syntax and basic functionality, even for common things like for loops. This goes especially for things I don't use much.
Programming languages are NOT like spoken languages, not even close. Any education in programming should focus on understanding basic principles common to most/all languages, not memorizing the exact syntax of switch statements (if your language of choice even has them).
I mean do you really intend to make people memorize what values can come out true/false in each language? Go ahead and memorize the javascript truth table. That's a load of fun.[/QUOTE]
Programming is a craft, and it's materials are a language, experience can teach you much but you need the right tools for the job, a master stonesmith cannot sculpt granite by hand.
[editline]1st May 2015[/editline]
[QUOTE=Axznma;47640289]Talent to me is a natural affinity for the subject taken to a higher level via application of skills learned over time. Someone born with inherent [B]talent [I]and[/I] skills[/B] better fits the prodigy definition.[/QUOTE]
You're not born with skills, you're just are pre-dispositioned to learn them more easily, which helps but at the end of the day you still have to learn the skill.
If I wanted to delve into the world of learning to program; where do you guys recommend I start?
[QUOTE=Kite_shugo;47640647]If I wanted to delve into the world of learning to program; where do you guys recommend I start?[/QUOTE]Google? Not trying to be snarky here, google has literally all the resources you need to learn any language.
[QUOTE=thisguy123;47640623]You're not born with skills, you're just are pre-dispositioned to learn them more easily, which helps but at the end of the day you still have to learn the skill.[/QUOTE]
Skills are techniques. Seeing a child that perfectly encapsulates a skill without any prior knowledge or exposure is impossible without allowing that they're born with them.
This is best demonstrated in extremely young prodigy children of music as there are physical absolutes that cannot be flukes routinely. This is especially evident when the unexposed plays in Absolute Pitch to existing work that specifically requires technique that is otherwise impossible to achieve the same results. There is no logical explanation for the phenomenon with those variables other than they inherently knew the specific skill involved in the process.
Unless you consider every example to be falsified, in which case any discussion on this is irrelevant.
[QUOTE=NotMeh;47639866]We've had programming exams on [I]paper[/I] in my university[/QUOTE]
That's normal.
[QUOTE=itisjuly;47640699]Google? Not trying to be snarky here, google has literally all the resources you need to learn any language.[/QUOTE]
The difference between Google and an education is that education teaches you things you wouldn't have thought to look up. Saying "just Google it" isn't helpful.
[editline]1st May 2015[/editline]
[QUOTE=Kite_shugo;47640647]If I wanted to delve into the world of learning to program; where do you guys recommend I start?[/QUOTE]
First, decide what you want to do
[QUOTE=ThePanther;47639691]Programming is a language, just like any other language, a lot of it is memorization. I could understand the rule of no internet access for help for a class.[/QUOTE]
Programming is about mathematics and general logic, to master it you need to understand, not memorize
[QUOTE=Kite_shugo;47640647]If I wanted to delve into the world of learning to program; where do you guys recommend I start?[/QUOTE]
When I started to learn Python, I used this website: [url]http://learnpythonthehardway.org/book/[/url]
It's very beginner friendly, and should be easy to catch on.
I definitely recommend reading his shell course as well, I can't tell you the number of times command line/shell has popped up in my life.
[editline]2nd May 2015[/editline]
[QUOTE=ThePanther;47639691]Programming is a language, just like any other language, a lot of it is memorization. I could understand the rule of no internet access for help for a class.[/QUOTE]
I would probably throw myself out a window if I had to memorize multiple functions in one language, let alone the 5+ I know.
[QUOTE=gufu;47639670]I fail to see the reason why you would need to remember exact C++ syntax rules. That's pointless headache.[/QUOTE]
If you're worrying about syntax then you clearly didn't do enough studying.
[QUOTE=Natrox;47639857]Written exams for programming are usually pretty stupid anyways, in my opinion. Practical assignments (and preferably not under duress) are a much more useful learning experience, and you actually sometimes end up with something you can use for a portfolio or future work.[/QUOTE]
To clarify: we were allowed an IDE (Visual Studio) which is a HUGE help.
[QUOTE=Natrox;47639857]..and preferably not under duress..[/QUOTE]
Seriously? How do you expect to land a decent job if you can't work under pressure?
I'm imagining children growing up and programming/tech a thing like music or sports. Every kid in school would have in the back of their mind that if they really put work into their band, maybe it could take off, if they tried really hard in sports they might get a scholarship, or if they starting learning coding languages they could get programming jobs at google or aperture or whatever. Which is awesome because you can learn coding at very little expense as well.
I'm trying to teach myself Java while not at work and this video managed to regain some of that confidence.
[QUOTE=Kite_shugo;47640647]If I wanted to delve into the world of learning to program; where do you guys recommend I start?[/QUOTE]
I find it really depends on how you prefer to learn. I can't follow website tutorials at all. I'd much rather decide on some oversized project I'll never finish and get as much done as possible before I move onto the next thing.
Some people I know don't like the way I do things though and would much rather do a lot of simple problems.
For the most part programming is really just about problem solving, syntax and writing code quickly and under pressure are things you pick up as you go. But if you're not willing to spend time staring at code and being frustrated then it might not be for you.
[QUOTE=Kite_shugo;47640647]If I wanted to delve into the world of learning to program; where do you guys recommend I start?[/QUOTE]
Microsoft are pushing their new virtual academy, which is free courses taught uni lecture style. [url]http://www.microsoftvirtualacademy.com/[/url] they have a lot of stuff on different languages and i hear it's quite good.
i would definitely recommend python or another very high level language like lua/glua for grasping the basics, mainly because its very easy to get up and running and get used to the basic concepts. MVA do a beginner course on it here: [url]http://www.microsoftvirtualacademy.com/training-courses/introduction-to-programming-with-python[/url]
[QUOTE=Kite_shugo;47640647]If I wanted to delve into the world of learning to program; where do you guys recommend I start?[/QUOTE]
It depends on what you want your area of expertise to be.
I always say C is a great language for starters. It has all the basics on how programming works: variables,functions, conditions, loops, vectors, pointers, file handling, dynamic memory, etc etc. So it's a good language to understand the abc of how programming works.
However, there are others. Personally I'm taking a masters in Electrical Engineering and Computer Science, and we cover everything from Assembly to Java, SQL, Prolog, Golog, etc etc, and professors give us little to no tutoring at any of those. So basically we try to figure it out based on what we already know of C or other languages we already know. And of course recommended books.
When it comes to learning, I'd say get a beginners book on paper, so you can cover all the steps with book in hand. They're usually the ones that pop out the most in theme oriented bookstores.
After you get a little experience on how it all works, then start using the internet and exploring new function libraries that have new functions to simplify your code.
And after that, practice a lot. Programming is like math, the more you practice the better you get.
And the more you practice the better you are at identifying your own errors. Because trust me, you're gonna bang your head against code a lot over stupid things that are creating errors during your first times.
Then again. I'm not an expert programmer. I have programming assignments and I do them.
From personal experience and given the level of difficulty of my C assignments I don't feel like I need the help of the books anymore. I just go on google and type in whatever function I need, just to see if I'm getting all the parameters right.
Other than C, I'm currently doing another assignment in Prolog. Which I don't know anything about and will certainly need the help of books for it.
So yeah. This is how I do to learn.
[QUOTE=Behemoth_PT;47656899]
I always say C is a great language for starters. It has all the basics on how programming works: variables,functions, conditions, loops, vectors, pointers, file handling, dynamic memory, etc etc. So it's a good language to understand the abc of how programming works.[/QUOTE]
C doesn't have OOP though, which is a big chunk of programming as well
I started with C++ and I'm doing great
[QUOTE=NotMeh;47657592]C doesn't have OOP though, which is a big chunk of programming as well
I started with C++ and I'm doing great[/QUOTE]
Can't say I agree with starting with C either. Any language used for beginners should have all the main features a programmer would reasonably be expected to know. It should also have lots of documentation and examples. And it should be useful as a language unto itself.
I would much sooner recommend C# or Java than C for those reasons. They're common, they have plenty of support, they are adaptable, and they teach you just about everything you need to know. C++ is not a bad place to start either: if you can handle the challenge it will prepare you for more difficult things to come. I don't recommend that path for most people though.
[QUOTE=FlakAttack;47658036]Can't say I agree with starting with C either. Any language used for beginners should have all the main features a programmer would reasonably be expected to know. It should also have lots of documentation and examples. And it should be useful as a language unto itself.
.... common, they have plenty of support, they are adaptable, and they teach you just about everything you need to know.[/QUOTE]
im so confused, you just described C twice
[QUOTE=Soda;47658956]im so confused, you just described C twice[/QUOTE]
Object-oriented programming is a basic principle any modern programmer will be expected to understand.
Sorry, you need to Log In to post a reply to this thread.