Advice for novice programmers thread

Programming, for all ages and all languages.
Post Reply
User avatar
Schol-R-LEA
Member
Member
Posts: 1925
Joined: Fri Oct 27, 2006 9:42 am
Location: Athens, GA, USA

Re:Advice for novice programmers thread

Post by Schol-R-LEA »

B.E wrote: @Schol-R-LEA:
Start off learning HTML markup before getting into an actual programming language; it is structured quite similarly to many programming languages, but is much easier to learn.
HTML has nothing to do with programming. Moreover, there is no flow control constructs of the language (except JavaScript, but it is a difference language).
That was actually the reason I recommended it - it has a structure similar to a programming language, with nested statements, attribute assignments, etc., but is static, and thus somewhat easier for a novice to understand. My idea was that one could get familiar with the idea of coding first before actually learning a programming language.
User avatar
Omega
Member
Member
Posts: 250
Joined: Sun May 25, 2008 2:04 am
Location: United States
Contact:

Re: Advice for novice programmers thread

Post by Omega »

I suggest learning DOS because it gets you ready for ASM. Then learn JavaScript because it gets you ready for C. Then learn VB because it gets you use to API/GUI Design. Then learn C because it gets you used to having power. Then learn ASM because it gives you true power. Then learn PIC because it makes you leet. Then learn AI because you can make rad automatons. Then die because your life is complete.
Free energy is indeed evil for it absorbs the light.
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re: Advice for novice programmers thread

Post by Candy »

I would say that doesn't make your life complete, as I've gone on beyond that point and grew up.
User avatar
Omega
Member
Member
Posts: 250
Joined: Sun May 25, 2008 2:04 am
Location: United States
Contact:

Re: Advice for novice programmers thread

Post by Omega »

Do you have pics of your automaton or any robot you have made?
Free energy is indeed evil for it absorbs the light.
User avatar
DT170x
Posts: 19
Joined: Mon Aug 25, 2008 6:12 pm

Re: Advice for novice programmers thread

Post by DT170x »

Omega wrote:I suggest learning DOS because it gets you ready for ASM. Then learn JavaScript because it gets you ready for C. Then learn VB because it gets you use to API/GUI Design. Then learn C because it gets you used to having power. Then learn ASM because it gives you true power. Then learn PIC because it makes you leet. Then learn AI because you can make rad automatons. Then die because your life is complete.
Note: Omega that in the future there be a program or assembly\compiler more powerful then today and this will be never ending.
DT Model 1540 OS 1% <Kernel>
User avatar
AndrewAPrice
Member
Member
Posts: 2297
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Advice for novice programmers thread

Post by AndrewAPrice »

How many people actually learnt via baby steps? (Learn HTML, learn Javascript, learn Bash scripting, learn Basic, learn C#, learn C..)

Let them jump straight into C (or C++).. I think it'll be much easier learning the language you want to learn, since there are a lot of tutorials out there for beginners. I found it much harder going from procedure programming to object oriented programming than if I jumped straight in to OOP.
My OS is Perception.
User avatar
Alboin
Member
Member
Posts: 1466
Joined: Thu Jan 04, 2007 3:29 pm
Location: Noricum and Pannonia

Re: Advice for novice programmers thread

Post by Alboin »

Let them jump straight into C (or C++).. I think it'll be much easier learning the language you want to learn, since there are a lot of tutorials out there for beginners. I found it much harder going from procedure programming to object oriented programming than if I jumped straight in to OOP.
I'm becoming more and more tempted to say: "Learn Haskell First".
C8H10N4O2 | #446691 | Trust the nodes.
User avatar
01000101
Member
Member
Posts: 1599
Joined: Fri Jun 22, 2007 12:47 pm
Contact:

Re: Advice for novice programmers thread

Post by 01000101 »

I think a scripting languages like JavaScript or Ruby is a great starting point to get into C/C++. I think there should be some sort of intermediate step as the 'diving right in' approach doesn't always work.
User avatar
thepowersgang
Member
Member
Posts: 734
Joined: Tue Dec 25, 2007 6:03 am
Libera.chat IRC: thePowersGang
Location: Perth, Western Australia
Contact:

Re: Advice for novice programmers thread

Post by thepowersgang »

I learnt with HTML, BASIC or .bat first (can't remember), then JS, PHP and finally on to C before learning other langs (Perl, Pascal and others)
Kernel Development, It's the brain surgery of programming.
Acess2 OS (c) | Tifflin OS (rust) | mrustc - Rust compiler
Currently Working on: mrustc
DeletedAccount
Member
Member
Posts: 566
Joined: Tue Jun 20, 2006 9:17 am

Re: Advice for novice programmers thread

Post by DeletedAccount »

I also learned QBASIC first, then C++ , without a computer from a book . I did not have a computer at that point of time . I had to wait for nearly 2 years more to get hands on experience , then proceeded to learn Java,VB 6.0 , C# , Python,perl, Pascal , C ,x86 asm ( also PDP -11 , CRAY-1 , Mk 68000 , VAX , Power PC -- but do not rembember anything now , learned them for the exams ) , 8085 and interfacing as well . I can even create a language now if i want to [ :) ] .

Regards
Sandeep
Shadyjames
Posts: 11
Joined: Wed Nov 14, 2007 4:48 am

Re: Advice for novice programmers thread

Post by Shadyjames »

I'm an advocate of jumping right in. Every day that I type "=" instead of "==", or type "then" at the end of my conditional statements is a day I regret learning visual basic. It didn't really teach me anything that other languages can't, and it would've saved me getting out of a lot of bad habits.

This is kind of getting off topic btw!

Advice to new programmers: The only question its appropriate to ask another programmer is: "What should I google to find X". Also www.projecteuler.net is awesomesauce for learning a new language.
Shadyjames wrote:If my calculations are accurate, than 76% of the awesomeness in this room has emanated directly from us
pcmattman wrote:Tomorrow lets try for 85
User avatar
yemista
Member
Member
Posts: 299
Joined: Fri Dec 26, 2008 12:31 pm
Location: Boston
Contact:

Re: Advice for novice programmers thread

Post by yemista »

At least for me, I think its best to start at the beginning with assembly and then go into procedural and then OOP. The reason is that I started with Java, but I was always so curious as to how things actually worked within the computer, which led me to C which let me understand things better, then finally to assembly, where I felt I finally "got" how programs work on the computer. Also, once I went back to C and then back to Java, I could really appreciate what they could do and what they are best for after I had some experience with the lower level languages.
User avatar
goku
Member
Member
Posts: 29
Joined: Sat Oct 25, 2008 11:32 am
Location: until we meet again!!

Re: Advice for novice programmers thread

Post by goku »

yemista wrote:Also, once I went back to C and then back to Java, I could really appreciate what they could do and what they are best for after I had some experience with the lower level languages.
I certainly agree with you here. I myself started with C then a little bit of C++, then some Java experience and for some time C# also but when learned assembly realized how much complex things are at low level languages which one tends to neglect without the knowledge of assembly language. For me the way to learn should be first assembly then C and higher(..call me traditional is you may so... 8) )


Cheers.
User avatar
Firestryke31
Member
Member
Posts: 550
Joined: Sat Nov 29, 2008 1:07 pm
Location: Throw a dart at central Texas
Contact:

Re: Advice for novice programmers thread

Post by Firestryke31 »

I started programming with TI BASIC (for the TI-83+) but never truly got into programming until I started z80 ASM (also for the TI-83+). Then I went to C++, and working with ASM definitely helped me grasp pointers. I actually learned C++ by working on the GBA. It was great, because anything you did with the graphics hardware was immediately visible, and getting everything set up was just a few lines of code. z80 ASM and GBA C++ are both what make me want to write an OS, because with both, you had complete control, and if you didn't want to deal with an annoying API, you didn't have to because the hardware was right there.

I wouldn't recommend it for a novice programmer though, as not everyone grasps logic with the ease I do (sometimes).

My advice for a novice programmer is this:

If you already have a grasp of the basics of your chosen language, make a game.
Otherwise, learn the basics of your chosen language, then see previous statement.
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
me
Posts: 6
Joined: Tue Jan 27, 2009 11:17 am

Re: Advice for novice programmers thread

Post by me »

Well I'm new to these boards and don't have a kernel, OS, or anything to brag about, so with that caveat out of the way, here's my advice :)


I'm actually going to recommend the exact opposite of the OP. I think as a beginner you should decide what you want to do, pick your language based on that, and then learn it deeply.

The rationale for this is that once you learn something that deeply, the underlying design is more apparent to you than it is if you know it superficially. You'll see the good, the bad, and the why. Understanding the tradeoffs in the design of your language of choice will be invaluable for you, even if you're using other languages.

So generally, while abstractions and reuse are definitely good things, I would first write specific cases, and only when I see myself repeating the same pattern over and over again (sometimes twice is enough), I turn it into an abstraction instead.
quoted because it bears repeating.

Don't do something because it 'feels' right. The KISS principle. Lots of people quote it, few do it, and that's a shame.




Think about what you're doing.
Think about how you're doing it.

You wouldn't believe how much time I've seen people waste because they're afraid to waste time. If a script needs to be written to automate something write the damned script. If you find youself spending a lot of time maintaining documentation, project scheduling, etc, stop and think about how to lessen that.

You'll find youself more productive in the long run.

last but not least.

If you're building a system you've never built before, don't think about it, just build the damned thing. You're going to muck it up. You're going to do things you regret. That's what experience is, doing lots of crap you wish you hadn't.

It's more important to jump in, get your feet wet, and learn from the mistakes then it is to not make the mistakes.

And related to this, if you're not struggling, you're not really learning. Set your goals higher.
Post Reply