The online racing simulator
Coding: Where do i start?
2
(42 posts, started )
Quote from george_tsiros :you have a beginner in front of you. do you really want to put him through the minced meat machine that is the learning of subtle programming issues... like... the difference between declaration and definition?

True enough That said, it's always easier to learn fundamentals (no matter how boring) at the start, rather than after you've already developed habits. Well-grounded fundamentals will not only help to prevent you from developing bad habits, but will also significantly aid your ability to pick up other languages later on, by appreciating the differences in their fundamental structure.

Quote :if he has to spend line after line after line, defining classes (objects if you are pascal guy), instantiating them, callocing stuff, juggling pointers and learning about the 100 different APIs below your code without even getting to the nitty gritty of what does it all equate to... you've lost him.

Very, very true - and I can see why you've made your case for JS in this case, but I still disagree that it's the most viable way to get quick results as, often, it is combined with HTML, requiring the user to understand that, and the interactions and boundaries between the two. Something like C#, for example, is relatively quick to develop with, you can get quick results (either with command-line programs *or* with a visual UI developer). "Quick results" often depends on teaching. Someone (or some document) which teaches well, will give the learner the opportunity to see results quickly.

Quote :much like when you start learning racing you don't jump in the sauber. you start with the UF1. on a parking lot. alone.

But you still have to learn the basic principles - such as braking, accelerating, traction, understeer and oversteer... or you're just going to end up spinning off into walls all day. I'm not saying he has to go hardcore straight away, but it is important to have something that covers the fundamentals. Otherwise it's like learning how to drive the BF1 in LFS with a wheel by starting out with playing NFS on your keyboard... it's a slight resemblance, but nothing that's going to give you much benefit.

Of course, this is all just my opinion
Quote from JamesF1 :whilst others promote good structure, readability and encourage useful, functional thinking.

Python!
Quote from JamesF1 :
Wow... two incredibly incorrect statements there. All languages are not equal - some encourage sloppy coding style, and give a false impression of what programming actually is, whilst others promote good structure, readability and encourage useful, functional thinking.

I never said that all languages are equals. Maybe you misunderstand me because of my bad english, my fault, anyway for my part each coding experience I get in any language I learn helped me in others. The principle of coding stay the same, a if will stay a if in every language only the syntax will change.
Exactly, the first tme you learn a language, you are both learning the language, and how to program. The second time, you are only learning an extra language.

Another example is typing, you are learning to coordinate your fingers, and learn the key patterns. When I switched from a qwerty layout to the Dvorak layout, I just had to learn the new key patterns, and I was away. I could already type, I just couldn't find the keys, if that makes any sense.
Quote from ForceMagic :I never said that all languages are equals. Maybe you misunderstand me because of my bad english, my fault, anyway for my part each coding experience I get in any language I learn helped me in others. The principle of coding stay the same, a if will stay a if in every language only the syntax will change.

hummm will you be insulted if i say that your coding experience is lacking?

what you say is true only if one stays within the set of imperative languages... that is, the languages that are of the type:
command 1
command 2
command 3
and they run the commands in strict succession (ok we will ignore out-of-order execution in the processor for now it isn't relevant anyway)

there are other languages... like... Haskell. in that language, no matter how advanced you are with C or even assembler, you're still a n00b.

james: you now see that even though js has serious shortcomings, you can not easily dismiss it as a teaching tool for the absolute beginner. i will add one more thing: you can still teach to a beginner some fundamental and important programming practices even though the language does not force you to.
about the basic principles... do you really think you can avoid learning the fundamentals of programming if you learn js? you still have to understand what variables are... you still have to learn what flow control is... those are the things i think are important for someone who doesn't know programming.
Quote from george_tsiros :about the basic principles... do you really think you can avoid learning the fundamentals of programming if you learn js? you still have to understand what variables are... you still have to learn what flow control is... those are the things i think are important for someone who doesn't know programming.

I wasn't saying that all the basics are lacking, just some, if you wish to progress onto other C-derived languages (which seems to be very much the trend... C, C++, C#, Java, Python, the list goes on). Of course, it can serve as a good starting point, as long as it is made abundantly clear at the beginning (i.e. to the learner) that this is not 'how to program' this is simply an introduction with a very limited featureset, and there are more 'basics' that will need to be learned when moving onto a more complex language.

I guess I'm heavily biased, because of how I started learning... I found jumping in at the 'deep end' (so to speak) was a good way to start learning, as long as you had the desire to actually work at it. I'm often a little biased against the 'casual coder' who waltzes into an easy language, does bits, and as soon as it gets too difficult, gives up - I feel the easiest way to see if you're: a) cut out for it and; b) willing to do it, is to start with a language like C or C++, and see how far you get. I'm not saying that's the "best" way to do it, but I am saying that's how *I'd* do it, if I had the chance to start over again.
how about... showing someone js for a start, just so he can focus on what does a=5; mean and why a=1; b=2; c=a+b; b=1; print c; does not result in 2. and after he has understood this we can move to more... subtle issues ... like... why
for(i=0;i<320;i++) for (j=0;j<240;j++) write a byte to video memory;
is slower than
for(i=0;i<240;i++) for (j=0;j<320;j++)

it's not that you will do all the learning on js. only the beginning. what are variables, why do we have datatypes (even though everything is bytes), what is an array, why we have conditionals.. blah.

just as i said, the very basics.

gone are the days when you could get from 0 to programming mastery using a single tool (turbo pascal) *sigh*
Quote from george_tsiros :hummm will you be insulted if i say that your coding experience is lacking?

No haha but I'm surprised you analyzed my coding experience with my post instead of my coding style.

At least Bob Smith understood what I said.
Quote from Rooble :I've decided to give C++ a proper go and see where it takes me and so far I've built one tool and its been frustrating the whole way.

and we all know for what you need c++ for :>
Quote from ForceMagic : The principle of coding stay the same, a if will stay a if in every language only the syntax will change.

i did not analyze anything. i do not know what Bob understood. what you say here is just plain wrong. do i really have to actually point to why, exactly?
Quote from george_tsiros :i did not analyze anything. i do not know what Bob understood. what you say here is just plain wrong. do i really have to actually point to why, exactly?

I should said "in most" language I guess.

What I tried to said is he could begin with C, C++, VB.net, C#, Java, Javascript or any of oriented object language and it will help him further anyway.
If he don't do that just for fun. I mean to get a job in the futur, I will suggest him one of the most used language of his choice.

Tiobe Index
#39 - Woz
Quote from ForceMagic :If he don't do that just for fun. I mean to get a job in the futur, I will suggest him one of the most used language of his choice.

Tiobe Index

Even in the C based languages there are large differences depending on if generics are supported. Generics really change your whole mindset, it is NOT a subtle change
reboot is right though. the most effort is done when you first learn your first language. a second language even if it is a completely different school of thought, is easier to understand.
Quote from george_tsiros :reboot is right though. the most effort is done when you first learn your first language. a second language even if it is a completely different school of thought, is easier to understand.

I'd disagree with that statement, to be honest, from my experience. I found the only thing that helped me with the change from imperative to logic programming was knowledge of predicate logic - if anything, imperative programming 'tendencies' hindered my progress.
Quote from JamesF1 :I'd disagree with that statement, to be honest, from my experience. I found the only thing that helped me with the change from imperative to logic programming was knowledge of predicate logic - if anything, imperative programming 'tendencies' hindered my progress.

i said easier. not easy. when do you think you can learn programming haskell easier: if you have never written a single line of code in your life, or if you have learned imperative coding, in any language?
2

Coding: Where do i start?
(42 posts, started )
FGED GREDG RDFGDR GSFDG