Note from Dylan before diving into my brain on this page… This is an intro post, so it’s a bit longer than expected, but you’ll have to deal with it. :)… Also, I don’t have a set channel for communicating my learnings publicly, so this could easily turn into videos or podcasts… Stay tuned!
A little bit of background on me: (feel free to skip if you’re not interested in the pre-context)
Quarter-life crisis… I’m not really sure this is a thing, but I’ve been having feelings that are somewhat similar to what others have said about their own experiences when having a “quarter-life crisis”. This feeling of always questioning if I’ve made the right choice, if I’m pursuing the right career and a long list of other existential questions has been a recurring theme in my life over the past 5 years… And if I’m honest, will probably be ongoing forever, but I’m ok with that, as long as the feeling is mild and not too intense. Lately, it’s been a little too intense and it brings my mood down, and bringing my mood down is NOT cool!
So, I’ve decided to do something about the endless negative thoughts!
Well, before taking action like the brave knight I imagine myself being, I actually panicked for the last 3 or 4 months, letting my mind take me into weird/wonderful places, but now I’m thinking a little more clearly… At least it feels like it. 🙂
I initially thought finding my passion or purpose would help with solving this thought process, but in the end, I keep hitting dead ends… Coming to the conclusion that I have no single die-hard interest I wanted to pursue, so that was slightly concerning… I then thought to myself, why not research what advice professional career counselors give?! That rabbit hole was almost completely useless until I was re-reminded of a book I read 4 years back called, “So good they can’t Ignore”. I won’t summarize the whole thing (you can read it yourself — link here), but in a nutshell, Cal Newport does an amazing job proving the point that passion is something that comes once you’ve developed a skill over time and is rarely something that we’re born with… A.K.A. A kid deciding at the age of 7 that they’re going to be an astrophysicist and doing everything in their power to achieve that! It sounds amazing, right? But, sadly, this is not the reality for the majority of us mere mortals…
Luckily in the second half of the book, Cal explains that building out “rare and valuable skills” is the most reliable way of building out a passion/purpose for your career, which led me to think about the skills I would like to build out.
When reflecting on the massive problems our society will face in the coming century (thanks 80,000 hours), plus my general interests, plus what rare skills will be valued by society… I mushed all three of these things together and decided to jump into the world of software development, with the long-term goal of working in AI Safety/Ethics!
Now, you’re probably wondering… “Why has this stranger wasted my time with all this backstory? I’m here to hear about “learning in public!”… I’m getting there my friend, patience.
Learning in public:
Over the past 5+ years, I’ve forced myself into uncomfortable situations through 30-day challenges or social pressure (e.g. committing to deliver something to a group at a set deadline)… Both of these channels have worked for certain goals (e.g. public speaking, writing, ideation, etc.) and they’ve really shaped my personal habits, but I’ve realized for this longer-term goal I should try something that’s more sustainable… In walks… Learning in public!
Thanks to Shawn Wang and FreeCodeCamp for sharing his story, I’ve been inspired to try out this concept… So! I’m sure many of you have watched different cooking shows in your life, well those shows are a form of “working in public”, where the chef is doing their craft publicly for everyone to see. How about Bob Ross?! Are any Bob Ross fans out there?! His painting publicly is another form of “working in public”… The idea of “learning in public” is similar but with the goal of showing my journey of learning many things over a longer period of time… I’m excited to share the process because that’s always something I’ve enjoyed from others… The final result is cool (e.g. a successful business, some final piece of art/music, or becoming a software developer), but the actual process is much more valuable to me than anything else, so this is what I’m attempting to provide throughout this journey we like to call LIFE!
With this challenge, I plan on sharing most of my leanings with you (whoever “you” are)… And it’s going to include the good, the bad, and the ugly… I don’t plan on holding anything back… Why? Because it’s the hard thing to do and if it was easy, everyone would do it.
The stuff I learn and share over the coming years will start out in the area of computer science, but I plan on branching out over time into other areas (e.g. cyber-security, astronomy, psychology, etc.)… Because… Honestly, I’m interested in many topics and I want this “learning in public” concept to last a really really really long time.
So! What should you expect?
- Resources galore
- Simple explanations, with humor, sprinkled throughout
- More abstract thinking, with the goal of making different connections
My current approach to this computer science journey…
I’ve done what most people do when they have no idea how to get started on a topic… I went straight to Google! 🙂
After doing a few days of research (e.g. YouTube and Google), I came to the conclusion that there are two main areas I want to focus on for the next 2–3 months when tackling the world of rookie computer science… Those are…
- The theoretical – Data Structures & Algorithms
- The practical — Writing code (JavaScript + Python)
These two areas seem to be the big themes in software development and learning the abstract of both before diving into any specifics is my approach. I’ve heard too many stories where people argue over how different languages/frameworks are better than others, but that’s just their psychological biases speaking on their behalf… So, I’ll be separating out the ideology from the actual content that matters.
Below are the resources + the times I’ve been able to use each…
Side note: All the audio and video I speed up when watching/listening, but do what works best for you… Also, keep in mind these are only the resources I’ve found helpful, there are plenty that I’ve left out because they were not worthy!
Podcast (Morning — early in the morning when I’m at the gym for about 1.5 hours)
- Base.cs Podcast
- Basic, but super helpful explanations of algorithms and data structures.
- Free Code Camp Podcast
- Great personal stories of how different people went through the process of learning software development, plus most episodes give out tons of helpful resources
- Learn to Code with me
- Another podcast around personal stories of how people have entered into the software development field… This one has been good for relating to the struggles I’m running into every time I study
Blog (During the Day — I keep different articles and blogs saved away for my in-between time at work)
- Big O Cheat Sheet
- This cheat sheet is literally a miracle from the internet gods… I couldn’t recommend it enough
- Coding Interview University (GitHub Resource List)
- This is probably everything you’ll ever need to go from zero to hero in programming, so make sure to take some time going through this list
- A Gentle Introduction to Algorithm Complexity Analysis
- This blog article actually helped me connect with algorithms way better and made them a little less scary
YouTube (Evening/weekend — I’ll rotate between coding and watching lectures on data structures/algorithms)
- Course | Programming Methodology
- This playlist is a bit old school, but the teacher is pretty funny and active, so he caught my attention for about half the course so far and it’s been helpful in understanding some of the programming basics
- Data Structures — My Code School
- This playlist is a good one that helped me understand data structures in a bit more detail
- Data Structures and Algorithms — CS Dojo
- This is a solid playlist to start out with because the YouTuber doesn’t go too deep and scare people like me off… but at the same time covers a wider area of topics… Plus, check out his last episode where he lists out a bunch of helpful resources too
- Algorithms — Abdul Bari
- This guy is surprisingly helpful and explains topics really well… He does it in a robotic and dry way, but it’s helpful either way… Highly recommend this playlist
Online Courses (Evening/weekend — I’ll rotate between coding and watching lectures on data structures/algorithms)
- Data Structures & Algorithms in Python (Udacity)
- Another good course for beginners… This lady touches on the basics and provides plenty of Python examples if that’s a language you’re interested in, but don’t be scared off by the language… If anything you can ignore that and just watch the videos
- Codecademy — Intro to Javascript
- I’ve been bouncing back and forth between Codecademy and FreeCodeCamp due to each explaining the same topic (E.g. Javascript) in different ways, so I’m hoping that will help it sink in more… Codecademy is definitely good for those of you starting out from scratch.
- JavaScript Algorithms And Data Structures Certification (300 hours)
- This is a bit more challenging, but definitely a course I would recommend for anyone looking to learn Javascript
- Intro to Computer Science (Udacity)
- This instructor has been good at not getting too complicated in his explanations and is going a bit broader on computer science in general, which is helpful to connect previous pieces together in my head
Until next time, stay classy internet stranger…