I feel overwhelmed by how much I wanted to learn and kind of get lost. I currently work for a fintech startup. Though I mostly write R code to ingest financial data, I wouldn’t consider the work as software engineering. I had taken a few CS courses in college, but I still feel a beginner in programming.
Earlier this year, I started to study deep learning via fastai and formed the goal of becoming a ML/AI engineer. Then, I realized software engineering was probably a more urgent skill to acquire (mentioned in the book “No ML degree” by Emil Wallnér). Emil recommends getting good at coding and become a software engineer before diving into AI. So I changed gear and began OSSU. I loved Programming Languages courses by Dan Grossman! Looking and digging into code is much less intimidating to me. However, the OSSU learning is getting slower. One reason is going through lectures and assignments are less motivating, and the other reason is I am adding more learning resources to my study plan, like I get started on freecodecamp. Now I have three main learning paths in front of me:
OSSU: like traditional CS degree, learning Java mostly
freecodecamp: starts with frontend, project-based
ML (fast.ai): mostly Python and AI
It’s tempting to learn all of them simultaneously, but the advice I heard a lot (which I also agree) is to focus on one path. My goal is still to pivot into AI world. After some thoughts, I intend to change gear again to focus on freecodecamp, because it looks interesting and is project-based, best way to learn and also jumpstart on building portfolio. The community here seems a great place to be in, and I enjoy the new season of podcast.
I am still not very confident about my decision. Any feedback/advice is more than welcome.
So juggling different paths has 1 main shortcoming. Speed. You wont learn as much as fast if you jump between contexts. That said, you will learn more broad strokes of more things by jumping around. Assuming you have some pre-existing background to start from and build off of you could learn all three of these things at once.
The other secondary short comming is context switching. This again costs time as depending on how you juggle around your different focuses, you could spend time “catching back up”. This really depends on how much you jump between contexts though, and how well you can keep everything your learning organized.
Ultimately, if your already doing coding you should already have some baseline to build off of for all three of these tracks. There’s also some small overlap between each of these so its not necessarily 3 pure tracks. CS knowledge is always helpful, front-end can help with visualization, AI/Python is semi-covered in freeCodeCamp as well, and could intermix with some parts of the curriculum.
Personally I’d start juggling how you see fit and what you want to learn. If you feel like you aren’t moving fast enough (for whatever reason) or just want to look at something else to “freshen” your learning mind then go ahead.
Most suggestions of focusing on 1 thing are usually due to speed, if you just want to
learn then go ahead and learn!
Thanks for the honest advice
Yes, I am sure I would learn a ton in any of the three paths. But in terms of career development, speed is more important. Sean Smith talks about this topic in the latest episode of freecodecamp podcast, that our time is limited and picking a thing to learn in depth is probably better than knowing many things but only at rudimentary level. The former is more appealing to companies in job hunt.
I will stick with freecodecamp, hoping this path will help me keep pushing forward.