Live data from Hacker News

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

news.ycombinator.com

61–70 of 72 posts

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

#61
As a self-taught, many important concepts will fly by you that you do not yet understand (even while consuming training resources). Yet we cannot stop the world and look everything up the moment it first arrives. How then to improve? My advice comes in 3 parts (for a unified whole):

1. Pay attention to which ideas, nouns, terms, abbreviations come up more often, indicating they are the "table stakes" for a particular area of tech.

2. Develop a personality trait that refuses to stay satisfied with "not knowing". Practically speaking, this means: set aside dedicated time each week for self-study of the concepts you've taken note of in the first part and skip other things, but don't skip this.

3. Take notes when reading or consuming video/podcasts that cover these concepts and I sincerely recommend the practice of writing your notes by hand. There's no magic to it, but (I imiagine) the slower process of writing aids the mind in putting what you consume into your own words (and associating it with other things you already know in the field).

Here's an example from way back -- before phone apps, before web apps were common, I used to create full stack systems (backed by databases I designed) in "thick client" GUI apps using Visual Basic. But the concept of web apps was gaining traction and I wanted to figure out the key ideas. The main thing I hadn't figured out was how the heck data fields from a web form (for example) could be reliably relayed to the "business tier" of a 3-tier web application. People threw the term "request object" around like it was some kind of obvious concept. I simply had no knowledge that all frameworks/libraries for web application development provided this common request object abstraction, so I was imagining all kinds of complicated and proprietary ways one might need to construct such an object -- especially across different web servers.

I have noticed that this kind of "getting stuck" is common to the self-taught. Following the process I mentioned above, I focused in on learning about the popular web server APIs such as CGI, NSAPI, and ISAPI and how popular frameworks (at the time) such as PHP or ASP made accessing them much more developer-friendly through already-created request objects.

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

#62

Mechanical engineer who’s spent the last 30 years programming instead. First thoughts: - Find ways to ask questions. Whether forums or slack channels or peers. Asking puts you in the learners seat. — Find domains that excite you. A friend told me “web development rots your brain” after he tried that for a while and found that carving out some time to contribute to open source Linux drivers kept him going and engaged.…

Make it run, make it right, make it fast, make it small.

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

#63
I think that everyone has a different way they can learn effectively. For example many people find coding videos useful but they never helped me.

I learn the most when I am building something for myself. Remember, the code is just a means to get to the end product.

There are many success stories out there of programmers making cool stuff and getting noticed - but the main thing I think is finding the motivation to push through those road blocks, the times when you spend a week and get just the one line of code...

PS: having kids myself I switched over to coding at night 50% of the time - I do 4-6 hrs in the day and 2-4 hrs after bedtime. Made all the difference in productivity and family life is great.

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

#64
post #16

In my opinion (others will disagree), the vast majority of CS concepts are not very useful for most software developers. I don't think you should feel bad about that. I consider my time & money getting a CS degree to be almost entirely wasted. If you're at a large company, look around for open positions that look interesting on other teams and talk to those team leads about what skills they would want. Maybe they'd e…

> In my opinion (others will disagree), the vast majority of CS concepts are not very useful for most software developers. I don't think you should feel bad about that. I consider my time & money getting a CS degree to be almost entirely wasted.

I would agree for a web dev. But if you start getting more into backend, infrastructure, building distributed systems and APIs (which was the path I took), data structures and algorithms definitely start to come into play.

I started out self-taught on the web. Got a degree in design. Then learned web dev, then moved to backend, then to infrastructure, then devops, and now platform and cloud engineering. For me, I wanted to understand "the whole widget". And there are things I learned about UX that when applied to DevOps/SRE work, have elevated me as someone to listen to.

(As a fan of Avatar: The Last Airbender, I want to point to when Iroh was explaining how the 4 nations achieve balance. Same concept here. UX, engineering, infrastructure, and product need to work collaboratively together with mutual respect for the other disciplines to achieve the balance that leads to something great happening.)

I've picked up some data structures and algorithms along the way over the years, but I don't have college definitions of them. This hurt me when interviewing at Google, but I also have the ability to search the web and learn new things. So I do.

Just last week, I was working on tokenizing and building an AST for NRQL (New Relic's Query Language). As I was working through the tokenizer, I realized that this is what a linked list is.

I'm thinking about taking a single college course this upcoming semester about data structures and algorithms, just to fill in the blanks. But I've been building things for the web since 1997. For the most part, using anything beyond lists, maps, sets, queues, etc., is (relatively) rare, but again, it depends where you want to go next. Sorting large datasets efficiently, parsing things into trees, binary search, and making sure I iterate over things as few times as humanly possible will give you FAR more bang for your buck.

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

#65
post #55

I am not “self taught” in the sense that I taught myself to code when I was young, and got a CS degree, and continue to learn new technology on my own , but I feel that the feeling you have is not related to being self taught or not. When I turned 30-ish and had a kid and a wife and a mortgage… I lost a metric ton of interest in computers and computing. It happens. The truth is that software is a terrible time-sink a…

I appreciate the response. "When I turned 30-ish and had a kid and a wife and a mortgage… I lost a metric ton of interest in computers and computing." - This is exactly what I've been feeling recently.

Same here. I think what I realized is that coding is not a thing. Rather, it is a tool which enables you to do other things.

About 13 years in, I pivoted in two interesting ways.

1. I started looking far more at the backend, infrastructure, and how to design efficient end-to-end systems (from UX, through the stack, to the infrastructure).

2. I realized that I have a passion for building products that take complex things, and simplify them for the masses.

So, I was doing more "building", but I was also creating new "products". And that flipped a switch inside me.

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

#66
post #62

Mechanical engineer who’s spent the last 30 years programming instead. First thoughts: - Find ways to ask questions. Whether forums or slack channels or peers. Asking puts you in the learners seat. — Find domains that excite you. A friend told me “web development rots your brain” after he tried that for a while and found that carving out some time to contribute to open source Linux drivers kept him going and engaged.…

Make it run, make it right, make it fast, make it small.

This.

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

#68
In Columbus, Ohio the Columbus Computer Society has SIG's (Special Interest Groups) [https://ccscmh.org/special-interest-groups/]. I don't know where you live but if it's big enough (and especially if there's a concentration of computers professionals) there may be SIG's in your area where you can talk with others like yourself. SIG's are especially good for presenting topics [as strict9 mentions] if you want to prove to yourself that you really know your stuff.

The Linux SIG, for example, is part of a larger network of Linux SIGs worldwide.

https://ccscmh.org/special-interest-groups/

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

#69
I’ve learned the most from 1) taking things apart 2) fucking up putting them back together.

I generally agree with other comments to find a passion project and build it. But I think a lot of people, including myself, don’t even know where to start with _that_. I’m not a crazy inventor or creative type that’s teeming with original ideas, but I am extremely curious. When I don’t have a nice project idea to use for learning something, I just take something else apart and learn how it works. Or try to reproduce something in a new language or platform.

Last but certainly not least, there will never be enough help in open source projects. Pick one you use often or that you have decent working knowledge of and ask if you can help.

Sure, a passion project is going to be more motivating and interesting, but it’s not the only way to advance your knowledge or keep your tools sharp.

Post reply on HN