Have you set any goals for 2020 professionally? While you should focus on personal goals (such as going to the gym more, eating healthy, etc.), you should plan to grow yourself professionally. Even if you love your current job, it is up to you to keep your skill-set relevant for future opportunities and to explore other areas that interest you. If you wait for someone else to manage your career then you'll be waiting for a while or maybe forever. Below are my top 12 things that I believe you should be doing in 2020 if you are in the software development space in no particular order.
Create an account on Twitter – Yes. This one sounds simple and you probably even used your Twitter account to create a dev.to account but in my conversations with attendees at conferences, there is still a lot of folks who claim that they don't want an account due to a) they won't have followers or b) they don't want "noise" such as political tweets or c) they don't want to waste time. HINT: You decide who to follow and you can even mute someone. :) Anyways, I have a couple of reasons why you should still have an account.
- Followers don't matter. They don't. Regardless if you have 0 followers, 1 follower or 10000 followers an account gives you the ability to share your thoughts, bookmark other great dev tweets, and search.
- Get software developer news straight from the source by following other developers. This has been one of my top benefits since I joined Twitter. I know there are so many smart people out there and I love being able to not only follow them but interact with them. Don't be shy.
- Monitor your favorite technology hashtags – To monitor topics important to you. For example, I use it to monitor #azure, #nodejs, #dotnet amongst others.
- To stay engaged in a conversation with other developers and to see what projects they are working on. Again, you don't need to have tons of followers to be engaged in a conversation or have a GitHub repo with thousands of stars.
- Direct Message - Many devs like myself have our DMs open. If you feel uncomfortable creating a public tweet, then DM them. On a personal note, this is typically one of the best ways to reach me.
Read StackOverflow – StackOverflow is the number one forum for asking and answering a coding question. If you use the site already, then you are probably aware of "site-rot" where the best answer could be the third or fourth comment. Even with this hurdle, I've found it's worth it just for browsing questions and learning how different devs solve the problem. I think it is a wise investment of your time to spend at least 10 minutes a day reading StackOverflow.
- Take advantage of tags to quickly skim the recent questions. Again, I monitor similar tags as the hashtags mentioned earlier for Twitter.
- Try to solve issues to your product that you work on (if it is listed as a tag) by adjusting the filters to see the most commonly asked question, upvotes, etc. and provide an updated answer if need be.
- Volume - It probably has more questions and answers then your favorite programming language official site and you can share your single login.
- Cross-discipline audience - Having the ability as a dev to ask a data question and not only have developers answer but database admins, etc.
Start a Blog – Every Developer should have a blog. But Why?
- It is a footprint that we leave for other developers studying our craft.
- It allows you to become engaged in the community.
- It helps you market yourself as a professional.
- It shows your technical ability and passion.
- It allows you to challenge yourself and help educate others.
- On the flip side, DON'T start a blog for revenue. Be yourself and the money will come naturally at some point.
Get out there - Try your very best to get out of your comfort zone and start talking to other developers at local events, meetups, conferences, etc. You have something amazing to contribute!
- In my many years of attending conferences – most everyone is shy at the beginning. If you start a conversation with someone, then it usually takes off very fast because you should have at least one thing in common (such as technology in general).
- Networking with other developers is key to your professional career. You start building connections in the industry and if you ever need help then you have someone to go to. It also works the other way around.
- Present on a topic for your co-workers, meetup, conference or even your mom. You may even like it.
Start watching live streamers in the development space or create your live stream - While you may be thinking "Who would watch someone code?", the answer is thousands of developers do it every day and for the following reasons:
- Online streaming is a safe place for all, but especially for those with social anxiety - you can join a live stream and stay quiet or participate in the conversation. While I'd suggest participating in the conversation, do what is safe for you.
- You can help others and others can help you learn to code regardless of your skill level. My daughter who is 10 years old was working with makecode.com on my stream and a viewer suggested another way to solve the problem and she learned something she (or even myself) didn't have insight into before.
- If you are trying something, you don't have the pressure to be perfect as a professional video tutorial. You open your IDE or editor and start coding, you get to learn about your mistakes and so does your audience.
- Don't stress having followers or concurrent viewers at the start as your video can be posted to YouTube and the notes on dev.to further create your brand for your current or future employer.
- If you don't know who to start following, then you should create an account on Twitch and follow the entire Live Coders group that is led by Jeff Fritz.
Spend money on solid hardware - I don't care if you are in the Mac or PC camp - don't try to save money here in 2020. In my early 20s, I tried to save money here every time but always spent more money to fix broken or slow hardware.
- This applies to mobile too - If you're a developer and carrying around a 3 or 4-year-old phone then its time to upgrade. I remember way back someone that told me they couldn't download my app because it required iOS 9 and I remember thinking "This person is in software development?" While I don't suggest to get a new model every year, I would stay current enough to run the latest generation of apps regardless of iOS or Android hardware.
- Just like some industries you need to drive a fancy car to have nice clothes or the latest jewelry. In technology, we need to stay as current as we can afford with our computers, software and mobile phones as our customers may be using the latest technology.
Think more clearly about mobile – While I'm sure this will be the most controversial topic in this post, I'll say it anyway. Be wary of all the offerings of cross-platform development - "write once, deploy everywhere" messages.
- What app are you creating? - I have been involved in iOS development in some sort since iPhone 3GS was released. Yup, I watched the keynote and started learning Objective-C. While I eventually needed revenue from other platforms like Android and eventually Windows Phone, I always took a step back from anyone promising to "write once and deploy everywhere" because it depends on the app you are creating. Do you want to wait until your cross-platform tools support the latest mobile OS version? What about performance? What about documentation and help for a problem that occurs?
- Keep it simple - Do you need your app on every device on the current market? If so, can you do it with a web site or *gasp* PWA? To you need blazing fast speed and performance, well I'd probably suggest native. Do you have a simple LOB app that needs to work on Android or iOS, then a cross-platform tool may be the answer. This is something a modern developer cannot ignore in 2020.
Learn at least one programming design pattern - I am not going to tell you which one you should learn or focus as it depends on what technology area you focus on but you need at least one.
- If you are familiar with at least one design pattern then not only would your code be structured better, but it would make your future employer feel better about hiring you.
- Since I typically work with OO programming, I started with this book: Gang of Four – Design Patterns: Elements of Reusable OOS (not an affiliate link) and eventually worked towards others.
Set reachable goals every year – Create a short-list of goals that you are looking to accomplish in the next year.
- Track progress with numbers - I typically start with 10 items that I am proud of in the last year and 10 goals for the current year (2020). For example, if you have 200 followers on a social media platform, then you might set a goal to hit 500 followers.
- Not only should you be challenging yourself with a reachable goal you should also create a monthly or quarterly email reminder or use a reminder app, browser plugin, etc. to evaluate your progress.
- Hold yourself accountable by sharing it with close friends, the whole world or just creating a private imgur image post to look back on in a year.
Learn a different programming language – Simply put it broadens your perspective and permits a deeper understanding of how a computer and programming languages work.
- Keep in mind that while the goal is to learn (maybe 1) programming language, you might find yourself with a new language that you can use to solve problems differently.
- Wise words - If the only tool you have is a hammer you'll treat every problem as a nail.
Believe in yourself – It amazes me when I hear other developers telling me about their low self-confidence. Why? Because I look at them as way smarter than I am. Here I am copying and pasting code from StackOverflow and they think I know what I'm doing? Hah!
- If you struggle with this as I do, then one of the ways to soften this anxiety is to spend time with a bit of self-reflection. While I know I'll never be known as a superstar developer (if this is a thing), I have found that my knowledge in a form of a blog post, twitter, etc has helped many folks.
- Teaching - Teaching others has many benefits but the one that I find the most valuable is the incentive it is to learn the material to prevent looking like a fool. This could be for a live stream, speaking session or just to 5 co-workers. It helps so try it.
- Learning - In my army dad's voice - There aren't any excuses for staying ignorant in this industry. Even if you don't have access to the latest books, hardware, development tools, etc., there are just too many FREE resources on the web.
Read written content such as blogs and books – Do you read blogs or books consistently?
- I believe a good developer would read or skim at least 3-5 blog posts per day and have at least 1-2 books on a backlog. Why? Well, to at least have a high level of knowledge on a topic regardless if you plan to use it. It gives you options.
- How can you get better if your not constantly reading?