Aerothorn on 7/10/2006 at 22:48
For some reason, when I saw this thread out of the corner of my eye, I thought it said "I'm becoming a pregnant cow".
Schattentänzer on 7/10/2006 at 23:40
Poke into assembler. I'm not saying you should learn it, but write a Hello World and maybe a simple calculation program. Understanding what happens on the processor is a solid basis, and knowing assembler will come in handy for debugging.
Then get your hands on a good C++ IDE, and write simple command line stuff. Avoid GUI, if possible. VB is good to throw together a quick application, but C will teach you how programs work, the hard way. Everyone should have misplaced a pointer at least once.
Read on about software engineering. Learn UML and flow-charts. Start with easy stuff like the Waterfall or Spiral model, look up Extreme Programming if you can stomach it.
Good luck! :)
dvrabel on 8/10/2006 at 01:00
Some of the advise on this thread is excellent (what Scots_Taffer said) and some of it not so good.
Learning assembler is not necessary -- a basic understanding of how a CPU works is sufficient. (And I can probably count on one hand the number of times knowing assembler has helped with debugging.)
Learn buzzwordy stuff like UML when you need to actually use it.
Also, IMO, things like good design and writing maintainable code are not things one learns but are things one gains experience in.
SD on 8/10/2006 at 01:40
Quote Posted by Aerothorn
For some reason, when I saw this thread out of the corner of my eye, I thought it said "I'm becoming a pregnant cow".
Heh, I read it as "I never want to have sex again!"
Scots Taffer on 8/10/2006 at 02:08
Quote Posted by WingedKagouti
I'd say that understanding the underlying structure is the first requirement to become a programmer, otherwise you won't be much more than a code monkey.
That's exactly what I said. Learn to think programatically and to think in code without syntax and THEN absorb a language, soak up the syntax and understand its idiosyncracies, its internal consistencies and inconsistencies and later, efficiencies and so on.
I do agree that procedural and object-oriented are very different creatures, I have no real grounding for OO programming as it wasn't covered til 2nd year.
Quote Posted by Renegen
Scots_Taffer, do you have any lecture notes?
Yep, in Britain. Sorry. :(
If I could scan them, I would... even though it'd take days!
Quote Posted by BEAR
EDIT: Scotts, that looks alot like the syllabus for my first programming class's.
lol, that's only a third of the compsci course content for the year! :D
Quote Posted by dvrabel
Also, IMO, things like good design and writing maintainable code are not things one
learns but are things one gains
experience in.
Very true, learn how to think programatically, soak up a language, use it and in time you will learn how to cut out unnecessary steps by further exposure to the language and through learning efficiencies and so on. Learning the language and efficiencies simultaneously can be counter-intuitive in my experience.
RavynousHunter on 8/10/2006 at 02:27
i, too, am a code junkie. i started over 4 years ago with TI basic, writing little math and science apps, and even a nice game (in TI terms). My freshman year, i took a programming course, and learned the ins and outs of VB6. Then, it was time for me to fly out of the nest, i began learning DM, the language of the BYOND game engine, and some C#. 2 years go by, i havent learned much C#, but have learned tons of DM from examples in my spare time, but this time, im in a little thing called "EAST Lab", basically, its a course for those who are "community service inclined", which i am not. Unfortunately, i was forced to do a service-based project, alone, the only way i knew how, with code, but all they had was VB6, and that put me on a bit of a sour note for the entire year, because by then, i had learned enough C# to make a nice little ditty of a prog, and i really wanted to expand my horizons, but NO.
Well, im out of this damnable class, the summer of my junior year. i found a little forum called the "GameDev.net" forums. i immediately became intrigued, they gave me tools and resources in a language that dumbfounded me for a long time, C++. i enevitably became engrossed in the language. I finally was able to get a book called "Teach Yourself C++ In 21 Days" :thumb: Ive been learning tons from it, and thats where this chapter ends. :cheeky:
Scots Taffer on 8/10/2006 at 02:41
Oh, and for general advice Renegen, learn algebra and calculus. It wasn't just advised for the CompSci course at my Uni, it was required. Understanding algebraic rules and basic calculus functions are invaluable when it comes to coding.
Mortal Monkey on 8/10/2006 at 02:53
Writing programs in Assembly is like building an automobile out of legos. It's tedious, unintuitive, and not very portable, and doesn't really have that much to do with strapping actual car parts together. And the only thing it's usefull for is proving your superiority over the machine.
A C compiler, like most other compilers, will convert car parts into lego bricks and fit them all together. Most will even do some optimisation for you. But the only way to ensure that your program couldn't possibly go any faster, is to write it in Assembly. The speed gain is really minimal (we're talking split microseconds), but if you're doing real number crunching, say, making a pixel shader for a game (which means running the same piece of code 786432 times per frame in a 1024x768 resolution), Assembly is invaluable.
Fortunately, many compilers support inline Assembly, which means you can just pop Assembly code anywhere in your other code.
Anyway, I'm a big fan of C++, so I can get you started on that (just PM me or something). I've just started poking at Assembly myself, so I can't really do much for you there.
TTK12G3 on 8/10/2006 at 04:36
Quote Posted by ignatios
Python is an excellent language for learning programming. Its syntax is simple but that doesn't make it 'basic' by any stretch; Python is a great language and is just as capable as Java. In fact, the language itself is more expressive (and in a sense more powerful) than Java, but that shouldn't matter to you for quite some time, if ever.
It's very good for learning, but if you learn it, you must learn another language as well. Python's use is significant, but knowledge of the JAVA language is simply a necessity in the programming world.