It's a lot harder than I expected.
I'm interested to see what other people have to say.
It's a lot harder than I expected.
I'm interested to see what other people have to say.
About 12 months in, you (hopefully) realise that those concepts are actually pretty crucial, and the extent to which you can succeed as a working programmer is the extent to which you can see the application of those abstract concepts in your daily work. The good news is, that gets much easier with real world experience. You'll go back, reopen the books and say, "oh, it's just a stack. fine."
The exception to all of this is State Machines. They are the most important thing. If you see something in your code that smells like a state machine, for the sake of humanity, please, make it one explicitly.
Lambda's are anonymous functions, by the way. They're not scary at all :) Here's one in Clojure:
(fn [x] (* x 2))
It takes one parameter, called "x", and returns it multiplied by two. This function is not bound to any variable name, but just passed somewhere "on the fly".1) People who have been programming for years and years. That way, you have enough of these tiny examples of how people have done things. Now at school, a higher layer of abstraction showing how all this stuff is connected comes up and it is amazingly insightful.
2) People who are lucky enough to find the right kind of mentors in school. The kind who will force you to relate the theory to practical examples.
At this point, if you don't have both enough work on the practical examples and on the theory, the only advice I have is to be prepared to work very hard, ask dumb questions and persist at it. Eventually, you will go into industry where it might initially seem as if the stuff you studied didn't have any context. Go back in a few years and re-read your notes, it will help you understand where the connections you subconsciously made in school have helped you.
Hard to generalize bc people learn differently but for me in-person hack-events are one of the best ways to learn. 30 minutes with a better programmer always trumps 30 off-on days with a book.
You would be better to get a degree in something you enjoy doing and find easy, while on the side build interesting projects on the Internet. Those projects can be used as your portfolio to get a job and you have a degree in something you didnt have to work too hard at. Rather you worked hard at teaching yourself how to design, code and creating cool things on the Internet!
Who cares about age overall, because it's nothing you can control and no doubt you are going to run into a lot of younger douchebags. Those douchebags will one day grow up to be nicer people, as well you'll grow up to the point of not letting other people's negativity affect you/make you lose focus of your goals!
From a 38 year old start-up guy who is still learning! Started my first idea at 31.