I'm in my first full-time coding position post grad school and I've been here about a year. My three-pronged career strategy is, at the moment:
Build a personal brand. I've got a Twitter, dev.to, LinkedIn, GitHub, and website with the handle
awwsmm
. I'm posting more here and on Twitter. I'm trying to get my name out.Get certified. I don't have a degree in C.S., so I'm trying to add some "legitimacy" to my CV by taking a course in advanced Java and getting Oracle certified. After that, I'm thinking of getting certified in SQL or Apache Hadoop/ Spark.
Build a portfolio. I did a ton of C/C++ coding in graduate school, but unfortunately I didn't keep a record of much of it at all. I'm trying to document more of my recent work here and on GitHub.
If you're also new, what challenges have you faced early on? Have you gotten any really good advice from more senior developers? Why did you choose your particular language or framework?
If you're more experienced, what advice do you have for me? What languages are worth learning now? How important are certifications? What do you look for when hiring new developers? What do you think of my approach?
Any advice at all would be appreciated!
Top comments (11)
Go to meetups and conferences. Listen to people who are more knowledgeable than you. Go to presentations where you don't understand what's going on. Take notes, and let those notes help you decide what you'd like to study and where you'd like to take your learning and career.
Make sure you're learning new things, either through work or through side projects. As soon as your learning starts to stagnate, your career will stagnate. Solicit code reviews from friends and community members for your side projects.
Write blog posts about things that you've learned and hard problems you've solved and don't want to solve again after you've forgotten the solution and moved on. Treat your blog as your own personal wiki of learnings, failures, and unexpected successes. This makes for interesting content and will have the side effect of boosting your brand.
If you're going to take classes or get certifications, try to stick to ones that are relevant to what you're working on now. If you're going to spend money (yours or your company's) on course material, make sure you get some practical use out of it. If you don't solidify your knowledge with practical experience, it will probably evaporate out of your brain.
At least, those were things that worked for me. I come from a background mostly in music and pre-law. I was initially self taught and went to a bootcamp in 2014, so I know what it's like to not have direct experience.
More than anything, keep in mind that your goal as an early career developer is to learn. Absorb everything you can. Find mentors. Ask every question that pops into your brain, even if you think it's stupid. Keep up with that attitude, and you'll do fine.
Thanks for the advice, Jess! I'll definitely take it all under consideration.
I've started using my blog here as a record of difficult problems that I've been able to overcome, which I hope will help other people who encounter those same problems in the future.
I have started my career 3 years ago and I am very pleased with my own progress so far.
Here's the strategy I used:
Write blog posts. Either on a platform like this one or start your own blog. It's cheap and the exercise of having your own VPS, domain and a codebase to take care of over the years is quite useful. Write blog posts about the challenges that you overcome at work, about new tools that you need to figure out how to use. Spend a lot of time on this, do a thorough research on the subject you're writing about. If you write a very good blog post, you will find yourself coming back to it time and time again to remember how to do the things you need to do.
Volunteer at work to take on responsibilities that are outside your comfort zone. If you're a backend web dev, maybe volunteer to take a look at a frontend bug, or stop letting other people write your Dockerfiles or CI configuration, try to do that on your own and then ask for feedback. This works best in smaller companies.
Volunteer to help people at work with their problems. Nothing forces you to improve your knowledge like having to explain a topic to somebody else and struggling to do so (that's also why writing blog posts is important).
Have a good work relationship with a senior software developer at work and ask them questions.
And here are the things I didn't do and why:
Getting a certificate. They are only useful if you want to work for a company that is required by another company to have some number of certified workers, like being an AWS partner. Or maybe in a huge corporation that cares more about pretense than actual skills. I have heard those still exist, but never experienced it on my own.
Building a portfolio. Having some repos on Github just for the sake of having them is useless. Doing side-projects is only useful when you learn something from doing them, you don't have to finish them, you might even delete them afterwards.
PS: I would rethink mentioning your MENSA membership in a CV. I don't know if it impresses anyone, but it can definitely make a few people think you're pretentious.
Thanks, Angelika, for how much time you put into your response. I'm the lead developer in a small group at a research institute, so I don't really have any senior devs I can talk to. It makes this website (and the people like you on it) truly invaluable.
Hi Andy. No offense taken.
Do you have any concrete advice other than "code more"? Are there any particular books you recommend? Any particular paradigms or data structures or algorithms I should research?
The most important thing you can do is invest in cultivating social skills. People who can write code (well or not so well) are not rare. We (devs) tend to think mostly about tech skills and many feel social skills don't matter or are, at best, a necessary evil. But they are very effective in terms of both advancing your career and also just generally enjoying it. (FWIW, I write here and elsewhere on this topic..)
Building a brand is important, too, but you gotta be able to back up the marketing with reality. The trick is to not just assume that because you're good, people will notice or care. We (devs) like to belittle and devalue marketing, but it's an important part of successful business, and that includes your career.
My take on certs is that they're mostly helpful before you get more experience. And they're more helpful in consulting than full-time employee type situations. YMMV.
The most important things I look for in devs are how well they can play with others and how passionate they are about what they do. Specific techs come and go, wax and wane, and a good dev can learn as needed. Your involvement in the community, OSS, etc. are publicly available indicators of your passion, so they are helpful in that way. Getting involved also helps you gain broader perspective, learn from more people, get to know more people/network, so it's all good and helpful, above and beyond just honing skills.
Code stuff. Be curious and get your code out there and criticised.
Wow, thanks! I'll definitely take your advice on researching the different classes of programming languages and getting comfortable with a few different ones. And thanks for the book recommendations, I'll take a look. (Definitely bookmarking your comment for later... thanks so much!)
You could also contribute to known open source projects. It will be a good learning experience and something you can talk about during interviews or put on your resume.
Great idea. I'll try to start doing this more often!
Actually, I found this post just today. Maybe you can get something useful out of it.