Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 How did you learn?
Index -> General Programming
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Zeroth




PostPosted: Sat Aug 23, 2008 11:14 am   Post subject: How did you learn?

I've got a post up on my blog, about the progress of programmers, and how that relates to the six stages of art. However, I was curious, how did you guys learn? What did you start with? What did you learn? What kind of mistakes did you make that have been useful?

For me, I started with Python. I worked initially on the command-line, then onto files. I had an idea for a program I wanted to make, and I'd look up how to do it, and make it. I've done things like little utilities for monitoring internet connections, a basic rpg combat, custom search engine, etc. Basic stuff, like text parsing, list manipulation, and eventually, a particle generator in pygame. That one was a lot of fun. I learned about vectors, about visual effects, how to speed things up. Its when I finally /got/ list comprehensions.

I've learned things like how logic works on a basic level, if this, that then, etc. How to get the precise kind of behaviour I want out of a loop, the ordering of statements, implied statements, fall through, exception handling, logging, test suites, efficiency, data structures. In that order. I also learned about various tools, like ssh, editors, version control, documentation, ftp, web servers. I had to learn those things in those orders, because I could not have done it from a high level. I needed the basics, then to abstract those away. The basics are now so ingrained its almost automatic for me. But sometimes I have to revisit what I know of the basics, and update them, improve them. As I progress, more and more gets abstracted out with what I learn. I am now at the point of really understanding the theory of computer science(Ideas/Purpose in my post), and working on the Idioms, and understanding and applying them. Eventually, I may be able to begin looking at what I can accomplish with code as it is now, and pushing that barrier.

Every mistake I made contributed to my knowledge, to my ability to solve problems. Every logic mistake taught me to be more explicit and careful. I also learned I will always make mistakes, so its better to be prepared for them than to assume I am perfect.

This is what I feel is missing from computer science education now. This progression from the basic to the more complex, adding layers of abstraction on your knowledge, is essential. I now have a feel for what can be accomplished and how, which only gets better with more experience. Whereas, computer science education has been polluted by unnecessary layers and abstraction(Java) for a beginning programmer. They also try to teach algorithms, data structure, and the basic understanding of efficiency and algorithms that is needed for high-level work. And all at such a stage where this overwhelms the new programmers. I personally feel it would be much better to start at utter basics, of statements, their ordering, flow control, and then functions. And from there, add-on... but only after they gain experience from trial and error with the basics. Its the best way, I feel, to build talented and useful programmers.

What do you think?
Sponsor
Sponsor
Sponsor
sponsor
md




PostPosted: Sat Aug 23, 2008 10:32 pm   Post subject: RE:How did you learn?

I started by reading and copying BASIC programs out of some old Microsoft Press books. They I tried writing my own solutions to the problems.

Eventually I moved on to writing small programs to solve math problems in BASIC, then C.

I learned Pascal in highschool and C++ on my own time during high school and got into graphics and wrote some 3D rendering code. Not fast, but very interesting.
btiffin




PostPosted: Sun Aug 24, 2008 6:47 pm   Post subject: RE:How did you learn?

Started with a TRS-80 Model I 6 page all colour glossy. Included the BASIC command set. Saved all my pennies from working on a fishtug and bought a machine and a book.

Started reading, Programming the Z-80, wrote a debugger. Won my county's slot in the the first ever Computer Science portion of the Canada Wide Science Fair. Pretty much gave up plans on taking over the family's commercial fishing business after that and started trying in school so I could cut Waterloo's entry mustard.

I find I learn best with a reference manual and and an implementation in front of me.

Unix has always been my favourite OS, but I miss OS/2 and relish a chance to work in OpenVMS or System/370.

Kind of in order, and missing many...

Assembler, BASIC, C, awk, COBOL, dBASE, Pascal, Forth, TCL/Tk, SNOBOL, Icon, perl, lisp, C++, Java, Python, etc, and resting on REBOL for awhile.

Operating Systems are exciting.
Programming languages are exciting. Development tools are exciting.
Open Source is exciting.

Cheers
Zeroth




PostPosted: Sun Aug 24, 2008 7:00 pm   Post subject: Re: How did you learn?

Thanks guys. Very interesting.
riveryu




PostPosted: Sun Aug 24, 2008 7:49 pm   Post subject: RE:How did you learn?

I went into grade 10 before this summer, I got interested in Turing. Then got interested in CCC, so I learned Java from my brother's university textbook during the summer break following grade 10 up to now. My learning is purely driven by interest in logic problems.
jbking




PostPosted: Wed Aug 27, 2008 6:54 pm   Post subject: RE:How did you learn?

I started programming when I was 8 on a Commodore 64 back around 1983 or so. This was interesting as was programming in Logo back then, e.g. making the turtle draw various shapes by giving it instructions on how far to go, which way to turn and how much to turn, etc. I moved onto Watcom Basic, Commodore Pet assembly, Pascal, Modula-3, C/C++, microC++, and then the fun of VBScript, C#, and the mess of other web languages that are a combination of mark up and script, IMO.

I am a conceptual learner so abstract concepts are a bit more natural to me then going through specifics. I do not recommend taking a statistics course and a numerical analysis course at the same time that both cover the idea of least squares as this may lead to some eye-popping headaches in getting the concept both from a how it is applied in linear regression to how does Matlab do it.

While I have learned a few things in the classroom, I've also learned just as much outside of the classroom as I was taking computer science just when the web was getting rolling, 1993-1997.

At times I think it gets lost how diverse the range of subjects within Computer Science. Just to give an example of this here is the list of 4th year courses I did take:
Symbolic Computation(This was fun as I got the first year Algebra stuff rehashed into how Maple does things which is quite different from Numerical Analysis that I didn't quite like so much)

Introduction to Artificial Intelligence

Computation Complexity, which was an awesome course and something that I wish more people would take.

Algorithm Design and Analysis, which is probably the most useful fourth year course I took.

I do wish design patterns were taught when I was in school as this is one of the coolest things I've picked up in recent years.
nike52




PostPosted: Wed Aug 27, 2008 11:13 pm   Post subject: Re: How did you learn?

Like riveryu, I was introduced to programming in my gr 10 compsci class. Before that, the closest thing to programming I did was html and css. After that, on the side to my gr 10 compsci class, learned some python, c++, and java. My first mistake was thinking that I could program simply by reading over a book without practicing the syntax and theory. I still kind of do that today Razz.
Display posts from previous:   
   Index -> General Programming
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 7 Posts ]
Jump to:   


Style:  
Search: