From the mind of Sarah...
Being a Lifelong LearnerAugust 26, 2019
I always say that being a professional student would be my ideal job. I'm never more at home than I am sitting at a desk (or table) listening to lectures and taking notes. Homework, projects, tests ... all of these are tough, but they're in my wheelhouse. I didn't always love school, but it was always where I felt most comfortable.
Being a professional student doesn't seem like it's going to be my career, so I try to quench my thirst for education by being a lifelong learner. One of the great things about software engineering is it's a field where learning is expected. Technologies are changing, new features are being added to existing technologies, features are being deprecated, new solutions are being found for new problems, technologies that you've never used before may be what works best for your project ... there's always something new to learn. Even better, many companies support this learning by providing education/learning budgets and paying part or all of their employees' conference fees and expenses.
As many things as there are to learn, there are even more ways in which to learn all the things.
Learn By Doing
One of my favorite ways to learn is by doing. Whether that's an interactive course (I'm a big fan of Codecademy), a new personal project, or a code-along video, I find that actually writing code helps reinforce my learning. For example, I learned Gatsby starting with a documentation project at work, and then reinforced that learning by building my personal website using Gatsby. Tutorials (which are fairly prevalent for some technologies) are also helpful, provided you code along with the tutorial.
Once you have the basics of a technology down, a great way to reinforce your learning by doing is by building a personal project. Come up with an idea and use your new knowledge to build it. It's okay if it's not great and if you don't want to show it to the world (but if you do want to show it to the world, make sure the code is available on your GitHub profile or portfolio). It's okay if you still need to google everything and run back to the documentation to remember the basics of what you just learned. It's okay if your "really cool new learning thing" is just cloning something that already exists. Writing code that uses your knowledge, whatever that code is, will help reinforce the knowledge.
Learn By Seeing
Another great way to learn is by watching video tutorials. There are a lot of various websites out there, both tech-focused and non-tech focused, and a quick search for "online video course" and the tech you're looking at should get you some good options. Personally, I've used Treehouse, egghead.io, Frontend Masters, and Lynda.com (which is now part of LinkedIn, and you can have courses you complete on Lynda display on your LinkedIn profile).
Many of these sites require a subscription, but some offer limited courses and videos for free. You may also be able to get a subscription through your company or your local public library. For my fellow New Yorkers, if you have a New York Public Library card, you can get free access to Lynda.com through the NYPL portal (if you don't have a NYPL card, get one - libraries are great!).
There are some free resources available - and one of the biggest ones is YouTube. From tutorials to code-alongs to explanations of difficult concepts, there is no shortage of coding-related videos on YouTube. There are also a lot of conference talks on YouTube that introduce or explain interesting concepts, and those can be very interesting to watch to reinforce or grow your knowledge.
Learn Through Talks
In the tech world, there are a lot of in-person opportunities to learn. From multi-day conferences to 2-3 hour meetups, depending on where you are (and where you're willing to travel), there are a lot of opportunities to sit in a room with other technologists and learn from someone.
Whatever your area of interest in tech, there's a conference for that. In the month of August alone, I've seen tweets from people at DEF CON, Write/Speak/Code, Abstractions, React Rally ... and probably a few others that I'm forgetting. Most of these conferences are multi-day affairs, often on weekends, taking place all over the world. If you're someone who can (and wants to) travel, there are a lot of opportunities to travel to new cities (or countries), and while you'll likely spend most of your day in the convention center, you may get some time at the end of the day to explore the city a bit. If you can't really travel, be on the lookout for conferences taking place in your city - it's an opportunity to get the conference experience without having to worry about travel logistics.
I recently shared my experience at my first ever tech conference, Codeland, and while it wasn't exactly the experience I was hoping for, I certainly learned a lot from the talks and would encourage anyone considering it to attend. Many conferences have talks and workshops, which give you an opportunity to learn by listening and by doing. Workshops give you a more in-depth dive into a topic, while talks can be a mixture of in-depth and more broad introductions.
If you prefer shorter events, see if there are any tech groups in your area that have meetups. Many of these meetups groups live on meetup.com, and most meetups are free or fairly cheap. Meetups are often hosted by local companies (so if you're on the job hunt, it's a good way to see what companies are around and check out their offices, see if it feels like a comfortable environment) and feature talks, snacks, and a chance to chat with fellow technologists. Some meetups also have workshops, so you can learn a new skill (or brush up on an existing skill) while surrounded by a group of people who are happy to help you with any concepts you may not understand.
If you can't (or don't want to) make it to any of the in-person events (it's hard sometimes), some of these conferences and meetups post talks on YouTube after the event - so make sure you stay tuned to the event page and social media to see when those videos go up.
Learn In Class
I'm one of those people who learns well in classroom settings, which is why I learned more in my 13-week coding bootcamp than I did trying to learn to code on my own. For developers (or aspiring developers) who love to learn in a classroom, there are a lot of options.
For those first learning to code, coding bootcamps are a great option. They can be very expensive, but some offer deferred-tuition options (meaning that you don't have to pay until you find a job ... you often end up paying more, but it can be a better option if you don't have the ability to pay upfront). Coding bootcamps can also be helpful if you have an engineering background, but want to learn a different skillset of engineering (for example, if you've done data science and want to switch to web). There are a lot of coding bootcamps out there, and it's important to read reviews to find the one that's best for you.
If you're not looking to do a full-time bootcamp, or you're just looking to get some basic knowledge without an in-depth component, a shorter class or workshop may be for you. My journey to web development actually started with a part-time course (3 hours a night, 2 nights a week, for 11 weeks), and I felt that it was a great introduction to web development. If you're not looking for any type of long-term commitment, educators and schools often offer 1-2 day workshops that provide a great introduction (or re-introduction) to a topic.
Personally, I'm looking at potentially taking a UX design course or workshop, because I feel that it can help me bridge the gap between my print-based design experience and my web-based development experience and help me better understand how UX designers apply design principles to their work (and why it should matter to me as a developer).
Learn By Teaching
One of the best ways to reinforce your learning is by teaching. For those who do well working with and teaching others, a great opportunity to do this is as a teaching assistant (TA) at your school. If you're far enough out of school that being a TA isn't an option, many conferences offer the opportunity to teach a workshop. If you like speaking to others for a shorter timespan than a workshop, a talk at a conference or meetup may be the right fit for you. Depending on the context and the content, talks can be anywhere from 5 minutes to 30 minutes (maybe even more) and give you a great opportunity to reinforce your knowledge by sharing it with the community.
If (like me) you're not much of a public speaker, there are still opportunities to teach. If you're comfortable in front of a microphone and/or webcam without people around, you can screencast tutorials on YouTube (or your video platform of choice). If writing is more your jam, blog posts are a great opportunity to ensure that you understand what you've learned by getting comfortable writing about it. I shared my thoughts on blogging a few weeks ago, and while I don't generally blog about technical topics, I'll do it if I think it will help me reinforce my learning, and I'd certainly encourage others to consider blogging as a way to learn by teaching.
There are many ways to learn, and at the end of the day, it doesn't really matter what method you choose. What does matter is that you continue to challenge yourself and learn new things. Sometimes it can be hard to find the best way to learn something new, but it's important to keep trying - once you get that knowledge and master your new skill, you'll be grateful for the time you spent learning!