Advice for novice programmers thread

Programming, for all ages and all languages.
User avatar
miker00lz
Member
Member
Posts: 144
Joined: Wed Dec 08, 2010 3:16 am
Location: St. Louis, MO USA

Re: Advice for novice programmers thread

Post by miker00lz »

midir wrote:[*] Elegant code that's easy to understand is better than confusing code that runs faster. It just is.
USUALLY, yes. you'll find the guys who were programming back on the 8088s who can't break their old habit even on quad cores though. sometimes that's a good thing.
User avatar
JackScott
Member
Member
Posts: 1031
Joined: Thu Dec 21, 2006 3:03 am
Location: Hobart, Australia
Contact:

Re: Advice for novice programmers thread

Post by JackScott »

miker00lz wrote:
midir wrote:[*] Elegant code that's easy to understand is better than confusing code that runs faster. It just is.
USUALLY, yes. you'll find the guys who were programming back on the 8088s who can't break their old habit even on quad cores though. sometimes that's a good thing.
Why?
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Advice for novice programmers thread

Post by Combuster »

Can you understand insertion sort in a moment's notice if you happen to come across that code? Can you do the same for heapsort? Which of the two would you rather use in a tight loop?
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Advice for novice programmers thread

Post by Solar »

Measure. Optimize. Measure.

Until I have proof that this "tight loop" is actually affecting my performance significantly, and I have proof that whatever sort algorithm I programmed is solving that problem, a call to qsort() beats both options hands-down because it replaces the algorithm with a standard library call.
Every good solution is obvious once you've found it.
hall123
Posts: 9
Joined: Fri Apr 29, 2011 9:03 pm
Location: Australia

Re: Advice for novice programmers thread

Post by hall123 »

Before you call yourself a complete programmer you must at least learn a good amount of Common Lisp. Now Common Lisp might never get you job but it will make you think differently about programming forever. Once you learn some Lisp at reasonably well it will give you a look at programs should be written and you WILL make better programs because of it.

Daniel
Garbage collection is only for programmers that make garbage and can't clean up for themselves.
User avatar
NickJohnson
Member
Member
Posts: 1249
Joined: Tue Mar 24, 2009 8:11 pm
Location: Sunnyvale, California

Re: Advice for novice programmers thread

Post by NickJohnson »

hall123 wrote:Before you call yourself a complete programmer you must at least learn a good amount of Common Lisp. Now Common Lisp might never get you job but it will make you think differently about programming forever. Once you learn some Lisp at reasonably well it will give you a look at programs should be written and you WILL make better programs because of it.
hall123's signature wrote:Garbage collection is only for programmers that make garbage and can't clean up for themselves.
I agree with you, but you have to admit, it's ironic that you're advocating the one type of language (functional) that really needs garbage collection...
User avatar
hegde1997
Member
Member
Posts: 40
Joined: Mon Jan 30, 2012 7:36 am
Location: Bangalore, India
Contact:

Re: Advice for novice programmers thread

Post by hegde1997 »

Well i learnt HTML, QBASIC and then C and java and now assembly.
Walking my way in making my OS
User avatar
Nessphoro
Member
Member
Posts: 308
Joined: Sat Apr 30, 2011 12:50 am

Re: Advice for novice programmers thread

Post by Nessphoro »

hegde1997 wrote:Well i learnt HTML, QBASIC and then C and java and now assembly.
And brought up a dead thread!
greyOne
Member
Member
Posts: 58
Joined: Sun Feb 03, 2013 10:38 pm
Location: Canada

Re: Advice for novice programmers thread

Post by greyOne »

While everything listed in the OP seems to outline an effective strategy for learning language syntax,
And familiarizing yourself with programming as a whole, it seems to neglect a couple of important points.

Firstly programming theory. Severely underrated, but highly necessary.
History of programming languages and compilers is something that will never hurt you if you have.

And secondly, program architecture and design (including design patterns).
I remember my early code used to be jumbles of general messiness and circular dependencies.

These may have been mentioned,
But I really don't want to read through 9 pages of old posts.

Also, it's not thread necro-philia/mancy.
It's been less than 2 weeks.
User avatar
Kazinsal
Member
Member
Posts: 559
Joined: Wed Jul 13, 2011 7:38 pm
Libera.chat IRC: Kazinsal
Location: Vancouver
Contact:

Re: Advice for novice programmers thread

Post by Kazinsal »

Look at the years.

It has most certainly been more than two weeks.
greyOne
Member
Member
Posts: 58
Joined: Sun Feb 03, 2013 10:38 pm
Location: Canada

Re: Advice for novice programmers thread

Post by greyOne »

Debugging code is at least twice as hard as writing it in the first place.
So if you end up writing the most clever bit of code you possibly can,
By definition, you must be at least twice as clever to debug it.
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Advice for novice programmers thread

Post by AndrewAPrice »

hall123 wrote:Before you call yourself a complete programmer you must at least learn a good amount of Common Lisp. Now Common Lisp might never get you job but it will make you think differently about programming forever. Once you learn some Lisp at reasonably well it will give you a look at programs should be written and you WILL make better programs because of it.

Daniel
I would say to try to expose yourself to as many programming paradigms as you can. Learn what agent-based programming, class-based programming, event-based programming, functional programming, prototype-based programming is.

Learn parallelism - both thread-based and task-based.

Not every language makes every paradigm intuitive to use, so try to use different languages so you get an idea of what closures, polymorphism, anonymous functions, templates are really like.

I'm fortunate to have a job where I'm exposed to large projects that range from Node.js to C++ to Perl to PL/SQL.

Understand that everyone is an expert on something else - while one programmer may be an expert on cryptography, another may be an expert on compiler technology, network architecture, graphics rendering, memory management, databases, or artificial intelligence. Do not disrespect someone because they make a simple mistake or ask what you think is a dumb question - they may be experts and highly respected in their own fields.
My OS is Perception.
User avatar
bwat
Member
Member
Posts: 359
Joined: Fri Jul 03, 2009 6:21 am

Re: Advice for novice programmers thread

Post by bwat »

It's all about logic. Everything else is just details forced into your head space by ephemeral implementation technologies. I say this as someone who is currently implementing a datapath for an algorithm that is thousands of years old.
Every universe of discourse has its logical structure --- S. K. Langer.
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Re: Advice for novice programmers thread

Post by mac »

Lots of different opinions in this thread.

I hope by my post count I didn't bug this forum by costant spamming. :)

Let me begin. I'm a novice. I admit I don't know a lot about programming except for the basic theory like variable, loops, if...then. I know this is a very advanced forum.

I would love to enjoy programming only for the sake of it. My one problem I have is that I lack some kind of inspiration. It's perpetually hard to move forward with anything. It's like a mental paralysis. I also have Asperger's Syndrome, this makes it so complicated. It's like I need an outline for everything to keep me on track.

So tell me am I lost or can I still learn?
Nable
Member
Member
Posts: 453
Joined: Tue Nov 08, 2011 11:35 am

Re: Advice for novice programmers thread

Post by Nable »

SeanMc wrote:So tell me am I lost or can I still learn?
If your memory still serves you somehow and you want to learn - you are not lost.
It's like I need an outline for everything to keep me on track.
Heh, most people who are considered to be healthy also can't make much progress without making outline for their work.

Btw, it looks like a bit of necroposting.
Post Reply