Hacker News new | ask | show | jobs
by rjbwork 3387 days ago
Honestly, just data structures and algorithm skills seem starkly lacking among the autodidactic programmers I've known. An in-order traversal of a tree data structure is not hard, you just have to know how to do it, in concept if not able to immediately write the code out on your screen.
3 comments

> just data structures and algorithm skills seem starkly lacking among the autodidactic programmers

remove autodidactic from the sentence and it is still true.

Even with formal schooling you forget all the stuff you don't use weekly within a semester of last using it.

I think one condensed class on algorithms and data structures could have replaced the three I took if the low level CS classes had emphasized thinking about time complexity and planning before you code. If you're used to thinking about "I only have X resources, what's a not crap way to get Y done" then learning specific data structures and algorithms as you need them is second nature.

I don't think that's true if you learnt it properly the first time. I can still solve a quadratic equation, and I learnt that more than ten years ago and definitely haven't used it since.

I think there's a general rejection of knowledge, and software development has a continue cycle of reinventing the wheel because a large number of developers have no formal training. This something we are now celebrating instead of looking down on.

On the front page today there's separately a 'America needs to reject degree qualifications' and 'How do we get a certified certificate for developers'.....

At least you remember that they exist, and have a rough idea about how they work, which is more than someone who never took the courses. They probably could have condensed the courses and stuck with a few basic proofs instead of the more rigorous proofs I had to do.

The main reason they didn't is because those topics are mostly settled and unchanging, which means they don't have to rewrite a new course every few years. There are easily 5-6 courses I'd rather have taken but some of the most useful topics were too cutting edge to make it down to a Bachelors program in most Universities. The curse of a cutting edge field I guess.

Fairly true, but uni grads seem to do better at both and just general programming. There are definitely lots of people from both camps that are interviewing for programming jobs that can't actually write code.
College definitely forces you to learn a breadth of topics in whatever field. There's also a lot to be said for being out of "the rat race" and devoted to learning. It's hard to study 40 hours a week if you're working 40 hours a week. It's even harder to study when rent is due and you're about to be fired from your job (as a 'for instance')
The only thing people need to learn, whether with a formal instructor or on their own, is opportunity and reason. That's where society fails, the system is designed to hoard and dole it out from the top. If you want people to learn you have to enable them to stay on the edge of what they know. Programming isn't "easy" to learn on you own, its easy with a computer and an internet connection to keep your self on that edge. Any time you are forced to interact with people there are political barriers in place. That's where the failure of the system is, it prevents people from staying on the edge and getting to the next step by denying them opportunity and reason.
And they learn that too. Maybe they just havent needed these yet and still manage to be called some of the best engineers.