2 ms·
my 2c - I'm a very passionate learner - a softtop engineer (eg no education) who got where I am through the blood sweat and tears of personal drive and learning
by ninjakeyboard 11y ago
my 2c - I'm a very passionate learner - a softtop engineer (eg no education) who got where I am through the blood sweat and tears of personal drive and learning on the go. I'm a decent engineer now, and have really figured out what works for me so this is my current perspective on approaching learning.
The practice is important. I plow through books too but you need a project to become proficient. I bought a laptop and started working on some small scala projects on my laptop and reading books. That was enough to let me submit some janky scala for an interview and land a job as a scala engineer.
Some material is harder to learn, some of it is easy. I think it's better to defer reading books for a bit and get some familiarity with the basics so you have a point of reference while reading. The other day I was assigned a pretty big feature with a piece of the domain I wasn't too familiar with. I spent a few days writing a parser to get closer to the spec before starting to work on design docs etc. Having the familiarity then allows me to make sense of the research and existing design documentation so I think having a point of reference is a really important part of the reading/learning. If it's too far away from my current experience, I can't draw new pathways so it just falls out of my head. If I have that basic seed, I can grow some new pathways and expand my position with reading etc.
Ultimately, I think the best way to learn is to actually present the information again to other people. This is the culmination of practice and research together. To write a detailed article on a topic, you'll have to both write the code and also do a lot of reading. Any gaps in your knowledge you'll identify while you're writing and then it's a simple bit of google-fu to get a really solid level of understanding on a topic as you fill out your article.
Re-implementing things is also a terrific way to expand your knowledge. If you read a pattern book, you'll have some high level understanding of how the patterns fit together. Once you apply the pattern once, though, you'll never forget it and you'll see how it works at a very different level. So couple that with writing an article, etc, and it's a super effective approach to learning.