

If you could learn programming or comp sci again; what would you do differently? - rohitarondekar

There are so many resources online for learning computer science related stuff, new programming languages and some things not easily accessible to all.<p>Lately I've been feeling the need to invest considerable time on learning new things and re‑learning things I'm supposed to know (or already know).<p>So I'm wondering; If you could learn programming or computer science again – what would you do differently?
======
crc
You should put an end to this mode of trying to figure out some kind of
globally optimum sequence of learning. There is none. If somebody tells you
otherwise, they are either lying or they have forgotten the countless
hours/days/months/years they spent trying to hone their craft and _in-
retrospect_ they feel they could have avoided all this if only they knew some
optimum way to learn. You are in a partially observable environment. The only
way to learn is to explore a bit, consider what you now know, re-explore.
rinse, repeat. Pick something, anything, that interests you and jump at it.

~~~
rohitarondekar
I agree with the general sentiment.

But I'm not looking for a general solution. What I'm looking for is some cues
and hints.

The most common answer in this thread has been "write more code". When I
started collecting resources (mostly links to course material and lecture
videos) I got into a read only mode. I forgot that writing code was probably
the one thing I wish I had done more in college.

I don't know _exactly_ what I was looking for but I think diving into the
material is a great tip, thanks! :)

------
JackMorgan
I did a degree in Computer Science, which I didn't _get_ at all, and I hated
every minute of it. I worked in sales and teaching for a few years before
accepting an offer to program full-time. I came into the field with fresh
eyes, and a desire to excel. There I learned the programming not taught at my
"Java school" such as: emacs/vim, bash, code control, web programming, perl,
and php. I read Steve Yeggy. From there I went to a job highly focused on
quality first, where I was exposed to good (or at least better) OO, TDD, Uncle
Bob, and Fowler. Now, I am learning to burn off all the cruft of programming
that is not directly related to quickly shipping high quality code. If I could
go back: I would spend more time programming _anything_. At this point, the
only thing that has slowed me is a lack of practice at the craft.

~~~
hkarthik
This sounds like my story exactly. I would have hacked on personal projects
using Lisp or Smalltalk. My curricula was based on C++, and I could never
quite grok it. Ironically, I didn't "get it" till my senior year when I took a
graphics class that was taught entirely in C.

I think CS programs do a disservice teaching with an OO language too early.
The first language should be functional.

------
jjmanton
It might sound obvious, but I would have written more code. In school you work
on such small scale projects it doesn't give you a good sense of what happens
in the real world. Work on a large scale open source project that you have a
passion for. In addition, learn C. My CS degree was wholly based around java
and I regret not forcing myself to learn pointers, memory management and
functional programming.

~~~
JackMorgan
Yep, exactly what I was saying: just write more code. Functional and C are
excellent too.

------
motxilo
A solid foundation is of paramount importance: SICP & Discrete Mathematics,
for example. The rest will come later.

~~~
rohitarondekar
I have both the SICP and the MIT OCW Mathematics for Computer Science in my
list of things to learn. I really want to get into the later so that I can
take full advantage of the Stanford/Berkley online classes ( like
<http://www.algo-class.org/> ).

~~~
motxilo
I'm also taking the Algorithms class! I'm afraid it is going to be a bit math-
heavy, but anyhow it looks promising :)

------
AznHisoka
I'd actually learn more of the other disciplines, whether it's psychology,
health care, biology, philosophy, etc. Technical skills have become a
commodity - anyone can code if they have the persistence and enthusiasm. But
not everyone knows how to code AND have expertise in a specific field. That's
unique.

------
ergo14
I would probably switch all my years I used PHP for Python instead - and maybe
eventually spice up my C skills.

