Live data from Hacker News

Ask HN: As a self-taught developer, what are your self-directed learning tips?

news.ycombinator.com

21–30 of 72 posts

Re: Ask HN: As a self-taught developer, what are your self-directed learning tips?

#21
In software development, there is such a thing as "good taste."

There are ways of structuring code, of naming variables, of writing documentation, that simply are better than others even though functionality may be the same.

There is no way of acquiring this good taste except by reading code written by people with good taste.

If you're self taught, the easiest way to do this is by jumping into some code bases that have been written by people with good taste. Look at how they name things. Which private functions they define vs which things are inlined. Which bits of code merit a comment.

The best way to do this is to find some oss libraries that _you_ use, and just looking at the source code for them. You'll quite quickly realize which are easy for an outsider to understand and which are hard. You'll empathize with a 3rd party reader. And you'll learn more about how they work too!

Re: Ask HN: As a self-taught developer, what are your self-directed learning tips?

#22

Do the DS&A stuff. Learn the common data structures and their big-O. Do some Leetcode questions. You quickly discover that there were things you could have done better, and you realize pretty fast that a huge swath of problems are actually solvable with a small number of solutions. Other one is systems. Maybe less relevant for some people, but it's worth having a deeper model for how the OS works. How does virtual me…

Very much agreed on both. Especially systems. There seems to be a hard cutoff in developer productivity and solution finding that is directly correlated to their level of knowledge in this area. There is just something about being initiated into the UNIX philosophy that helps immensely.

As a web developer, I'm curious - what kind of projects are you talking about and what kind of solutions did you witness being implemented as a result of the creator having knowledge in this area?

Re: Ask HN: As a self-taught developer, what are your self-directed learning tips?

#23
Self-taught dev here, and I remember feeling similar things at a similar age. During a gap between jobs I wound up taking three online courses: Algos 1 and 2, and Andrew Ng's introduction to ML course (all at Coursera). This was just out of curiosity, I didn't have any particular goal or expectation for them.

At the time I didn't feel like I learned any One Big Thing, but in retrospect the courses demystified a lot of things, and I've never really felt out of my depth with development since. The other big thing I did was to tackle a much larger, more complex project than I'd tried before (a game engine). That also forced me to grow as a developer, but I don't know if I'd have managed it (or tried) without the footing I got from the courses.

Re: Ask HN: As a self-taught developer, what are your self-directed learning tips?

#25
When I was starting out I was then working in a different career. A lot of the work was analytical (Excel, GIS, etc.) and so I moved my work from those tools into Python.

I started small but eventually learned enough, alongside doing some online courses and personal projects, to get a job as a data scientist in a similar field.

Re: Ask HN: As a self-taught developer, what are your self-directed learning tips?

#26
The generals tips I have apply equally for self-taught developers and traditionally trained, yet are interestingly enough more often easier to accept for self-taught developers. Perhaps due to a willingness to acknowledge a _potential_ gap.

1. Be curious; allow yourself to say "I don't know" and go deeper

2. It's OK to be wrong; be humble and use step 1 to correct

3. Be aware of and try to discover and shed light on the things in your field that are your unknown-unknowns [1]); and then follow step 1

Links:

1: https://en.wikipedia.org/wiki/There_are_unknown_unknowns

Re: Ask HN: As a self-taught developer, what are your self-directed learning tips?

#27
post #3

Every five years or so, my wife asks me, "What do you need to learn now for the next 10 years of your career?" If you're self taught, you can teach yourself the next thing. You don't have a solid CS background? You can teach yourself that. Go look at, say, the list of MIT courses for a CS degree. You don't have to take the MIT classes. But which of the things do you know, at least to some degree? The ones you don't k…

How do you learn if you don't take exams? I mean how do you know if you understand a concept if you don't have someone assessing your knowledge

All knowledge, by definition, had to be first learned by someone. That person didn’t have an exams or someone testing their knowledge.

As a child I looked to exams and grades to validate my knowledge. However I got A’s on exams and felt like I still knew nothing. As I got older I care less about external validation and more about my internal “self grader”.

A few ways you can test yourself is building something. Take your knowledge and apply it.

Or try to teach someone. If you can’t explain the concepts clearly then maybe you don’t understand it as well as you think you do.

Or pretend your the teacher, write your own exams and take them. Ask yourself, “what questions would I ask students to tell if they know something?”

Lastly, and this one I like the least, find some tests or exams online, books that have questions at the end, etc.

Re: Ask HN: As a self-taught developer, what are your self-directed learning tips?

#28
Be open and curious about CS. There’s a strange mindset in some parts of the hacker community that considers CS to be wholly academic and divorced from the actual practice of programming. It isn’t. And it’s very rewarding.

Re: Ask HN: As a self-taught developer, what are your self-directed learning tips?

#29
> But also have been feeling out of my depth recently, perhaps regretting my lack of solid CS background.

I have a CS degree, and honestly the biggest practical value I got out of it was learning things that were cultural signals that let me part of the programmer "in-group" - I can talk about misc. cs stuff that will resonate with other programmers that have had a similar background.

In terms of things that I think are actually valuable like skills that help build things and write better code, there are much better alternatives than a universty degree. Just building things in my spare time and building things the way I want has taught me so much more. Sure, looking back, there are some things that I value highly that were taught in university, but it the signal-to-noise ratio was too low, to the point of being useless.

So I think the best thing anyone can ever do to improve their knowledge in software is to just build something that other people use.

If you're worried about fundamentals, I would say just shore up on some basic data structures (linked lists, hahsmaps, trees, maybe some graphs - this pretty much covers 99% of use cases). Rather than learning these as theory, I would strongly recommend just reading wikipedia, and writing code with them in a functional language like haskell. And also maybe some leetcode questions.

Post reply on HN