Advice for novice programmers thread
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:Advice for novice programmers thread
Be curious. Of every new language that you hear of, of every new technique, programming design ...
If you can grab a book talking about early computer designs, addressing modes, opcodes to manipulate the stack, or how a garbage collector works, bless the day
There's no such thing like a "best language" ... there are only unpractical use of a given language.
If you can grab a book talking about early computer designs, addressing modes, opcodes to manipulate the stack, or how a garbage collector works, bless the day
There's no such thing like a "best language" ... there are only unpractical use of a given language.
Re:Advice for novice programmers thread
Some of the key points I'd advise:
1. Don't waste your time on useless code, or something that will not benefit you in the future. (Unless ofcourse its work)
2. Patients is the virtue. Without patients is a programmer who has stop advancing.
3. Abstract thinking is important. Almost every experience in life can be applied to another, this applies to reusable code or one that can be modified very easily for a specific case.
I'd agree that English is a must, IMO mathematics may be not nessessary however it just as important to me as being able to read assembly code. With it you'll have less weight on your shoulders. If you dig down far enough you'll eventually cross paths with math and or assembly. Just my two cents
1. Don't waste your time on useless code, or something that will not benefit you in the future. (Unless ofcourse its work)
2. Patients is the virtue. Without patients is a programmer who has stop advancing.
3. Abstract thinking is important. Almost every experience in life can be applied to another, this applies to reusable code or one that can be modified very easily for a specific case.
I'd agree that English is a must, IMO mathematics may be not nessessary however it just as important to me as being able to read assembly code. With it you'll have less weight on your shoulders. If you dig down far enough you'll eventually cross paths with math and or assembly. Just my two cents
Re:Advice for novice programmers thread
You mean patience. Patients are the people that are in a hospital that don't work there.Ryu wrote: 2. Patients is the virtue. Without patients is a programmer who has stop advancing.
I very much agree on the last paragraph. If you can do the stuff around programming, you'll find programming (and designing) a lot easier.3. Abstract thinking is important. Almost every experience in life can be applied to another, this applies to reusable code or one that can be modified very easily for a specific case.
I'd agree that English is a must, IMO mathematics may be not nessessary however it just as important to me as being able to read assembly code. With it you'll have less weight on your shoulders. If you dig down far enough you'll eventually cross paths with math and or assembly. Just my two cents
Re:Advice for novice programmers thread
Yeah, your definition would explain why I'm forced in a hospital bed and given medications each time I visit a friend or a relative there. I don't, indeed, work in a hospital.Candy wrote: Patients are the people that are in a hospital that don't work there.
Re:Advice for novice programmers thread
I can recommend AGI -> PHP/SQL -> C++Kemp wrote:You pretty much nailed my path there, lol.To learn on your own, I recommend starting out with either BASIC or Perl (something interpreted). Learn Pascal from there to teach you compiled, imperative and most importantly STRUCTURED programming before moving on to C or C++ as you please.
BASIC -> Pascal -> Delphi -> C -> C++
Assembly and Python mixed in there as well. Python is a great language I have to say.
AGI teaches basic concepts (variables, syntax, basic logical thinking)
PHP/SQL teaches to work with databases, create functions, loops, etc.
C++ teaches the rest of OO and completes the teachings.
Re:Advice for novice programmers thread
Guys?
Blame it on me being slightly intoxicated here at Breakpoint '06 if I'm being blunt, but I think that recommending a learning path across three or four languages is pretty stupid.
Find out what you really want to do, ask people who're doing right that which language they're using for it, and learn that language. No detour.
Learning a handful of language can round off your skills, but it can not set a foundation where there is none.
Oh, and SQL ain't no programming language...
Blame it on me being slightly intoxicated here at Breakpoint '06 if I'm being blunt, but I think that recommending a learning path across three or four languages is pretty stupid.
Find out what you really want to do, ask people who're doing right that which language they're using for it, and learn that language. No detour.
Learning a handful of language can round off your skills, but it can not set a foundation where there is none.
Oh, and SQL ain't no programming language...
Every good solution is obvious once you've found it.
Re:Advice for novice programmers thread
SQL isn't programming, indeed, but I know that, at least for me, it's given a far clearer understanding of how to create classes, especially data classes, in C++.
Re:Advice for novice programmers thread
Aha...?!?
Well, if it worked for you...
Well, if it worked for you...
Every good solution is obvious once you've found it.
Re:Advice for novice programmers thread
Exactly
(Btw, the data classes's cause of what to store in the class and what not, and what should be accessed in which way. SQL's far simpler for it, but if used correctly, it'll teach how to think out how to make the most usable classes while keeping them to a minimum and not making your code less complicated. It's an extra step, but can be a useful one when thinking in a certain way)
(Btw, the data classes's cause of what to store in the class and what not, and what should be accessed in which way. SQL's far simpler for it, but if used correctly, it'll teach how to think out how to make the most usable classes while keeping them to a minimum and not making your code less complicated. It's an extra step, but can be a useful one when thinking in a certain way)
Re:Advice for novice programmers thread
I agree! Perl is widely used for systems programming, shell programming/scripting etc. on top of its web applications. Especially in the latter versions which encapsulate OOP it is an all round language that everyone should know and people should understand how much it has evolved since its early scripting days.Schol-R-LEA wrote:I have to disagree, not because Perl is the better language, but because it is the more universal language. Whether PHP is a better language for Web scripting or not is irrelevant, since web scripting is only one part of what Perl is used for; its role in automating system administration and operation, while less visible, is far more important. Perl has long since supplanted C-Shell as the preeminent scripting language under Unix, while under Windows, it far outstrips the use of VB for Scripting (which is not to be mistaken for VBScript, which is M$ half-assed answer to Java Script). I have heard it estimated that amount of Perl code written daily exceeds that of all other programming languages combined, and it seems plausible. Given it ubiquity, if you don't know at least a little Perl, you're going to have serious problems.Chris Cromer wrote: I would recommend learning PHP more than I would perl.
In short, I included Perl for the same reason I included HTML and C: because in the programming field today, you don't really have a choice about it.
My own personal ports of call for learning development have been:
- be good at maths and physics (will help with advanced algorithms and coding at later stages). also being good at foreign languages can also help as your mind is already acustomed to learning different languages.
- (X)HTML - for basic "programming" technique, syntax and to facilitate "the learning mindset".
- Perl && mod_perl - to move on to learning correct programming syntax and structure. start developing OOP concepts as well as (the added extra of) expanding your knowledge of Internet protocols i.e. HTTP. teaches you about interpreted language development.
- C - to start developing in more detail the understanding of high level languages and structured programming methodology as well as expanding on the previous topics learned. with C being very similar to Perl in syntax the transition should be far easier but as C is compiled it will also introduce you to compiling, linking and debugging.
- C++ && || Java - expands even further on your existing knowledge but further increases understanding of OOP, compiling and interpreting.
- asm and system architecture (x86) - this is the ultimate and lowest level (or pretty much) of development you can experience and teaches you how the system works at the basement level, lol. this helps you learn pretty much everything about how the computer works and will help you with more advanced programming.
Re:Advice for novice programmers thread
First and foremost, thank you all for all the advice. I'm a novice programmer, and I certainly got some insights from what y'all have written(though a little confused about where to actually start, due to too many discrepancies in the explanations, but no biggie).
I got a question though: It seems a programmer's life is a nerdy life, if one's supposed to know all much about all those stuff, so are you all nerds?
For a programmer who's moving towards the robotics engineering side, which languages would be bes for them tl learn? I heard the C family is the best cuz it's multi-platformed. Any insights, tips ,and contributions would be so appreciated.
I got a question though: It seems a programmer's life is a nerdy life, if one's supposed to know all much about all those stuff, so are you all nerds?
For a programmer who's moving towards the robotics engineering side, which languages would be bes for them tl learn? I heard the C family is the best cuz it's multi-platformed. Any insights, tips ,and contributions would be so appreciated.
Re:Advice for novice programmers thread
I prefer to call myself a geek. Nerd has negative connotations whereas geek just means you know a lot about something (not necessarily computer related even) *shrugs* Whatever gets you through the day.
For embedded systems C tends to be the most supported language that you can get the most help for, but you should check out specifics for your particular area. Some of our embedded systems needed NesC, which can only be called C if you ignore most of it
For embedded systems C tends to be the most supported language that you can get the most help for, but you should check out specifics for your particular area. Some of our embedded systems needed NesC, which can only be called C if you ignore most of it
Re:Advice for novice programmers thread
Hmm. Advice for novice programmers... You are not novice. There are no 'levels' in real world; beginner, novice, master, doesn't map well with the reality. You just understand some programming stuff, that's all.
There is no language you should learn, neither mathematics. The most important thing you should learn is to program. This doesn't mean mathematics or C. Instead it means you should understand what a computer really is and what can you do with it; Increase the pattern size of mental term 'computer'.
I'd say programming is about giving commands; manipulating systems to do what you want. What I've noticed to gain with my hobby and feel important are:
- Capability to gain understanding at an amazing speed, this is required to understand the really much changing output you get.
- Capability to understand patterns amongst complex context. You need to specify what you want, if what you want can be said simpler without destroying information content, then you can also write the program to be simpler.
Everything else, languages you use, processor architecture you program to (biological cell is a processor!), mathematical notations&logic you use(mathematics==language), is secondary to take a benefit from programming.
There is no language you should learn, neither mathematics. The most important thing you should learn is to program. This doesn't mean mathematics or C. Instead it means you should understand what a computer really is and what can you do with it; Increase the pattern size of mental term 'computer'.
I'd say programming is about giving commands; manipulating systems to do what you want. What I've noticed to gain with my hobby and feel important are:
- Capability to gain understanding at an amazing speed, this is required to understand the really much changing output you get.
- Capability to understand patterns amongst complex context. You need to specify what you want, if what you want can be said simpler without destroying information content, then you can also write the program to be simpler.
Everything else, languages you use, processor architecture you program to (biological cell is a processor!), mathematical notations&logic you use(mathematics==language), is secondary to take a benefit from programming.