May 30, 2019

Self-learners, may I pick your brain?

Valentijn van den Hout @vvdhout

I'd love to chat with you!

I have been an avid self-learner myself and want to hear your stories about how you have fared teaching yourself the skills you desired. I think it is a fascinating trend and am super interested in how others are going about it.

Let me know if you'd like to share your stories with me 🙏

  1. 2

    Here's a TL;DR of my self-taught story thus far:

    Barely made it out of high school, didn't go to college. Started in development by building AOL Proggies eventually leading to web development. I have never finished a single book on programming to the very end, and at some point I gave up on rebuilding my blog / portfolio every few months in another language just for the "experience" of it.

    Over my pro tech/dev career (~20 years at this point) I've worked for billion dollar companies, million dollar agencies and been a single digit employee at a few startups (one is still going 10+ years later and another was acquired for 7 figures with me as the sole engineer). I've even quit my job a few times to focus on my own stuff a few times as well, with mixed results.

    So what's any of this humble bragging mean? Glad you asked, along my entire journey my career has been focused on solving problems, often times at scale. Working at scale has given me some amazing opportunities to learn how shitty my code is and how I can improve things. Baptism by fire, and such.

    Even though I don't read programming books (never have, maybe will some day), or sit through online courses, I do research problems I'm facing, read a ton of blog posts and then execute on them.

    I rarely do any work just for the sake of it or "because I want to learn something new". At least for me, if I'm not going to use something regularly, simply learning it is probably not worth it because I'll probably forget whatever it was I learned within a short time.

    Side note: I feel this topical approach to learning development is one of the fundamental problems with boot camps. You can say you're a full stack engineer because you know a bunch of technologies across the stack, but that doesn't mean you have a tight grasp of every single piece, not in a matter of weeks at least. /rant

    Sure, that may seem a bit closed off, but having a laundry list of hot tech on my resume isn't as important to me as being able to do things quickly and efficiently. Because I don't just learn the basics of something, and am diving in head first with the intent of using something regularly, I build up a pretty good working knowledge quickly.

    I also believe that fundamentals of development are more important than the language (reads: Yes, as a matter of fact, I still sling PHP regularly ;). A lot of the problems I've faced haven't been things that learning a new tech could help with, but learning how to better work with the tech I have will.

    I'd say the only bit of actual "learning" I do outside of "doing" is by way of a couple of phone apps I have. One for algorithms and one for improving my retention of Vim commands.

    I keep saying I'm going to start doing HackerRank again for grins, but I have a hard time justifying the time that could be applied to be business. Maybe I'll start doing more of those challenge when I'm down by the pool this summer :)

    1. 2

      Thank you so much for sharing, Josh! Super interesting to hear how you have experienced it. I completely get your point of taking a specific subject and going deep, instead of going very broadly.

      And you mention that you managed to get in at really big companies. How was your experience getting hired as a self-taught dev? And regarding the path you took to learn, how do you go about choosing what to actually spend your time on? Right now its just by doing what you need to do and learn on the fly, correct? But before that, when you were still in the early stages? I feel its often hard to determine exactly what to be working on for self-learners. Would love to hear your experience with this.

      1. 1

        On big companies....

        Only three experiences there, two by way of contracting companies. At the top of my tech career I got a job at IBM end user support. Had to show an aptitude for problem solving, lack of experience wasn't even a thing (I was only 18 at the time). Second big gig was at AT&T, I got an intro there from somebody I met at the IBM support gig. Then after a startup stint after that, I got a gig at a health insurance provider (name's not important, but they had a conference room named Mount 2 Billion to represent a revenue achievement O_O). At that point I had solid experience and interviewed pretty.

        On what to spend time on...

        TBH, I've always had some sort of site or side project going on. I started a crappy "hacking" site when I was 18 that I maintained for a while. Ran some URLs shorteners and social communities at various times and even wrote a concert search engine. Since I've always been fortunate to have some idea (as crappy as it may have been) to hack on, I've just focused wholly on improving those things, and not necessarily sitting down and saying "I'm going to learn how to use React" or whatever.

        These days my time is focused on my day job (which has allowed me to learn Typescript) and my baby, HolidayAPI.com which provides it's own unique set of challenges as I try to rid the world of databases full of dates and other calendar information.

        Forgot to mention that I'm an avid blogger on my own personal site as well as Alligator.io which has allowed me to actually do a bit of learning on the fly without actually having problems to solve. Sharing information has always been a pretty solid way for me to learn.

        Something also worth mentioning, I'm always trying to make Open Source a priority in my endeavors, so with most of my steps along the way, there's a been an open source lib that I've created and released. Some of those have gained enough traction that they provide the occasionally learning opportunities as I continue to maintain them.

        If not obvious, I'm a "learn by doing" type. Not entirely sure when that clicked for me, but really happy it did. That's not to say I don't consume (already read 30 books this year) but for development, graphic design, Linux / server stuff, DevOps etc, it's always been about doing.

        With that, I think being able to identify how you learn best is probably the most important aspect of self learning. Sure, maybe you learn best with an instructor and autodidacticism may not even be a viable path for you, but at least you've identified it and can triple down on what works for ya.

        If I had to start from zero today, without any projects or knowledge about coding, and a desire to get into development, I'd probably start by switching to Linux (similar to what I did in the 90s) and then find open source projects that are looking for maintainers that have open issues that need attention.

        The age of Github and social coding and all of that has made the aforementioned quite easy.

        1. 1

          Hi Josh! Sorry for my late reply. Super interesting to hear this. Thank you so much for taking the time to share. I feel many people these days use online courses and tutorials that include a lot of projects but I am sure a full learn by doing approach can be incredibly helpful as well. You never felt that specifically because you were learning by doing, you lacked some guidance in important side content? Things you might overlook without a professor?

          1. 1

            Ya know, hard to really say there. I've never actually been great at instructor led education (part of why I skipped college, consciously). Even in high school taking programming courses, I was one of the kids that went off script and was building crazy shit that was well outside of what the curriculum was teaching.

            That's not to say that I don't learn from others, just speaking more of the formal realm of academia. Throughout my career I've had some pretty solid peers and mentors that I've been able to use as sounding boards and gather experiences from them.

            Unsure if you saw but Mark Cuban was speaking out about taking online courses recently, specifically on machine learning. Definitely inspirational to see somebody learning for the sake of being a better investor and not to just be a better dev.

            Got me thinking I need to up my game a bit :P

            1. 2

              I understand. Great you found that his worked for you. Yeah! Just found the video where he mentions that. Super cool.

  2. 1

    When I was around 8, I played my first video game, Alex Kidd on Master System, and I thought it would be very cool for me to create a game like that. I loved playing the game itself of course, but creation was even more attractive to me, till this day.

    I was reading a lot of gamebooks ("book where you're the hero") at that time, I was trying to write some as well, I was drawing shed load of labyrinths too, 'cause I wanted to create games.

    Then, around 12, I had my first computer and I began to modify some QBasic games on DOS. Afterward I followed a book to learn C, then C++, then GameMaker.

    Now I'm a web developer with 10 years of professional experience. I don't code games anymore (but I'm sure at one point I will come back to it), coding itself became the game for me.

    I learned everything by myself coding wise and I studied communication at school to expand my knowledge beyond pure technical stuff, and I'm so happy I did so. Soft skills are something every developer should takes time to develop.

    I'm never reading, I'm studying: I'm doing mindmaps for everything interesting and I review them on a consistent basis. Video, books, whatever the media, if I think it add value, I add it to what I call my "knowledge base".

    My review process is a mix of:

    • Asking myself questions to see what I remember
    • Doing some exercises to stretch my skills
    • Reread the mindmap and takes note. I might never read them again, but it doesn't matter: writing is good for memorizing. At least for me.

    At the moment, I'm going through some computer science books (I try to apply the first principle mental model which says that you should master the basics of your discipline in order to learn easily everything which is related to these basics), I have some side projects, I read books about marketing / management / business (to be precise right now I'm studying "The E-Myth revisited", very good even if it's a bit... too much sometimes) and I have a day to day job, a girlfriend and a social life.

    My plan for the future is pretty clear: a business as automatized as possible, which makes me happy to maintain it. I don't want fame, I don't want a lot of money, I have an upper bound as well for that. I just want to live happily and doing what I enjoy: learning, climbing, traveling, spending time with the people I love.

    Here's the key: learning to me is the real game, as creating video games was funnier than playing them. Having this feelings of "aha" and be able to apply my nowledge in some
    area is really enjoyable. Helping people is priceless.

    I try to avoid pressure as much as possible: I don't set any deadlines, I don't need them. I procrastinate very rarely. Why? Not because I'm better than anybody else, but because I created for myself systems I enjoy going through, which evolve all the time and which make myself a more accomplished and therefore happy person.

    1. 1

      Hi Matthieu!

      Sorry for the incredibly late reply. Was going through this post again and saw I did not respond yet. I appreciate your elaborate answer a lot.

      Am I correct in thinking that you use repetition a lot to learn? You mention you build mindmaps and review them for example. Do you have a set structure for something like this, or more the way it just feels best?

      p.s. your plan for the future sounds great. Wish you the best with it.

      Take care,

      Valentijn

      1. 1

        I use repetition a lot indeed. I look at my mindmap a bit randomly, but I was maybe planning to find (or create) an app which allows me to create "learning theme" and to remind me when I should review them, following the spaced repetition technique.

        More than repetition though, I have questions on my mindmap I ask myself before deploying the branches where the answers lie, to assess my current knowledge / understanding.

  3. 1

    Light a fire under your ass: convince someone to pay you for doing something you don't know how to do it. The "have to" and the upcoming consequences of an approaching deadline are the best fuel for a self-learner.

    1. 1

      Interesting. I can definitely see how that would work. Thanks for sharing!

  4. 1

    Believe it or not, I used to secretly hold it against myself for being (mostly) self-taught. However, I've come to realize that more people you've seen building cool things is self-taught in some ways.

    If you want to be a research computer scientist, then yes conventional education will help. But if you want to be a programmer who can program yourself out of a paper bag, plus many other skills to become an entrepreneur, being self-taught might actually be an advantage.

    1. 2

      Couldn't agree more. I think especially if you are aiming to build your own projects or set up a startup, being self-taught is a massive help. You never had conventional education, just fully self-taught?

      1. 1

        Yes, aside from attending online courses and sitting in night schools. My trade was in art and architecture. I got into programming via graphical programming and interactive electronics hacking because I've been a visual person. It took a while and so many failures to get to this point of being a professional software engineer, but along the way, so many unconventional people and sources of knowledge have inspired me to go on. Looking back I think those experiences had carved me into a resourceful person who always thinks outside the box. So I'm proud of the journey.

  5. 1

    I wanted to learn how to program iOS apps. So made a serious goal to get an app into the store within a year.

    Here is the twitter thread of the whole journey - https://twitter.com/JoshDance/status/905115414388105216

    And here is the app - https://itunes.apple.com/us/app/pushup-hero/id1410662331

    1. 1

      Hi Josh! Nice! Particular reason you went for IOS? And did you have experience programming in another language already? And how did you actually go about learning Swift? Courses, books, stackoverflow? Curious to your path.

  6. 1

    Habits is my key answer. I've developed habits and routines in order to learn new stuff, and it has been the most impactful thing that I've done.
    The other thing (related to the last point) is that I made my learning/working on side projects habit as my top priority in the morning. I always tried to do this at nights after work, but usually couldn't concentrate and ended up procrastinating on something else. In case you don't know it usually happens because my willpower 'muscle' is fatigued at this point, so I take advantage of using it when I'm fully rested.

    So my learning routine is:

    • study for 1 hour first thing in the morning, usually 5 days a week.
    • always, ALWAYS read a book on my commute to work for around 20 mins.
    1. 1

      Sounds like a great routine. Were you working at the same time? And what were you studying exactly? Was it some side stuff or big career skills that you were trying to master?

  7. 1

    i started to learn web development alone at 11, since i keep learning and interested in many things today i am a fullstack developer with a lot of experiences behind me. At 19 I work freelance with large groups like L'Oréal (YSL) or Renault (RCI) in parallel with a master's degree.
    Self-learning is a real advantage and the sooner we start, the better it is, it guides us to our path.

    1. 1

      Wow! That is awesome. Super impressive. What do you like so much about self-learning? And what is the worst thing about it? Or the most difficult?

      1. 1

        What I like the most is the fact of being free to learn what you want and when you taste it is like a drug you always want to learn more because the human is very curious.
        The hardest thing for me is to embark on this path, many think they need a person who helps them but we must understand that life is not so easy and that if we want to achieve its goal you have to give me the means to learn a little everything to achieve what you want and it is sure that I fell more than once but we must always get up because it is in our mistakes that 'we learn the most, but self-learning is developing more and more thanks to the internet and all these resources and it is becoming easier and easier (especially in web development) to get started alone!

        1. 1

          For sure! The internet provides so much value these days. How did you go out to figure out what to start with, what your goal was, and what to focus on?

          1. 1

            My first motivation was to help my mother feed me and my 3 brothers. Today I am still learning more to be the most versatile and to meet the current market demand (for freelance) and to help me forge an experience that allows me to build my own business.

  8. 1

    I learn to play ukulele and keyboard through :

    1. Yousician app
    2. Googling notes for songs
    3. YouTube videos
    1. 1

      Sweet! I learned to play the guitar in a similar manner. Mainly YouTube and Ultime Guitar Tab. The internet is awesome.

      Have you done self-learning primarily for your hobbies, or also career wise?

      1. 1

        Mostly hobbies. I have tried to learn Machine Learning online, but did not get much success with kaggle problems

  9. 1

    I have a pre-decided block of time dedicated to studies. I mostly buy a course on udemy and just study the skill daily by watching and doing.

    1. 1

      Sweet! And you are working full-time at the same time? What skill are you working on currently?

      1. 1

        Yeah I am working full-time.
        I am skilling up on blockchain.

        1. 2

          Awesome! I finished Udacity's Blockchain Developer Degree 2 months ago. Super interesting stuff. If you got any questions, maybe I can be off some value.

          How are you learning blockchain development currently?

  10. 2

    This comment was deleted a year ago.

    1. 1

      Hi! Thanks for sharing. Online courses can be incredibly helpful. Can you tell me a bit more about what you are studying using online courses? As in, are you taking individual courses to just brush up a skill, or a more wholesome approach? Would love to hear about this. Thanks again for sharing your time!

      1. 1

        I used to use Udacity a bunch, but I’ve found some great instructors on udemy lately. It’s usually skill targeted: i want to do X, and it has a bunch of pre-reqs. Recently, I did a css course to flesh out some holes in what I already know.

  11. 1

    This comment was deleted 6 months ago.

    1. 1

      Thank you for sharing your story! Super interesting to hear. I could not agree more with you regarding the pride.

      Was it smooth sailing for you, teaching yourself everything you needed to know? It definitely takes persistence to do so but I wonder if you had a lot of troubles or if it was all good. And how did you determine what you had to work on? Also, super curious to your experience applying for jobs and what being a self-learner did for you in that aspect.

      Talk soon,

      Valentijn

      1. 1

        This comment was deleted 6 months ago.

        1. 1

          For sure. I can imagine having a mentor can indeed be super helpful. I remember basically exploiting the codecademy chat support with side projects (sorry codecademy, but it was an awesome help) by just connecting it to the material I had learned. Was super helpful. Is codementor something you'd use know if you were to going through the self-learning path again? And regarding the interviews: I can imagine that that is the major thing for self-learners -> building out a great portfolio of real-world projects.

Recommended Posts