DEV Community

Advice for Developers in the Early Stage of their Career

Gift Egwuenu on January 29, 2019

I have been asked this a couple of times and will love to hear from others too.
How long have you been in the Software Development Industry and what advice can you give to developers that are just starting out?

Collapse
 
keptoman profile image
mlaj

I have been a web dev for almost 3 years.
As a "soon not to be anymore" junior, I would like to share these things that I have learned the hard way :

  • Find a place where there's a structure to help you learn how to be a good employee. Not too strict, not to loose.
  • Keep learning, reading about new things. Anything really.
  • You don't need to know everything. Don't spread yourself too thin.
  • Don't be afraid to learn or understand what your colleague's jobs are. Knowing a few things in design, front-end, back-end, and management can help you understand the workplace better.
  • Talk to other people. Make friends.
  • Get extracurricular activities, such as sports, arts, video games, whatever... Anything that is not about coding. I will also help to stimulate your creativity.
  • Don't forget to sleep. Work is not your personal life.
  • Eat well.
  • Find a mentor, if possible. It could be at your workplace or even on the internet! It really helps to have someone with more experience guide and help you throughout your journey.
  • Share, talk, write about what you are experiencing. Don't keep it all inside.
  • Once you have more experience, share it! Find a younger dev who needs mentoring.

Everyone has ideas, ways to do things, preferences... Make sure all of your knowledge doesn't come from a single source.

Also, I've seen that the more a workplace has fun activities, free time, parties, and "fun" at work, the worse and unhappy its employees are. The startups usually don't have the structure necessary to take care of a new dev. Maybe some of you have had different experiences?

Collapse
 
cfecherolle profile image
Cécile Fécherolle • Edited

That's a really useful list of reminders, thank you :)
I kinda get what you want to express by saying "the more fun the workplace provides, the more unhappy people are" because in some cases, companies market tons of fun and parties (or pool tables and whatsoever) to hide much bigger problems in the organization and the project. Don't fall for fake advertisement about infinite fun, but for what i've seen, in very bad conditions a team of devs almost always get pretty close and compensates the stressing or boring situation by being friendly with each other. Solidarity exists and is even more present when the work itself sucks. Again, this is just what i've seen. ☺️

Collapse
 
lauragift21 profile image
Gift Egwuenu

Thank you so much @mlaj. I totally agree with your points. Super useful!

Regarding your last sentence I think it's different for everyone and the fact that a company is fun to work at or have parties etc. shouldn't affect a developer's skill or make him any less happy. IMO

Collapse
 
ben profile image
Ben Halpern

It's pretty normal to feel like you don't know everything. It would be weird if you felt like you did know everything.

You should probably be curious and keep your options open, but seeking a bit of specialization as an exercise is probably pretty useful. It doesn't really matter what that specialization is and it can be pretty narrow, but if you are a JavaScript developer, as many juniors are, you could "specialize" in some specific component of the language like promises or hoisting or something. Go wide on a lot of stuff, but choose some areas to go deep in, just to get the practice of developing a bit of "expertise".

Don't overreact too much to feedback from your seniors, it's often highly contextual. Pay attention, but don't stress the minutiae.

Don't feel like you need to learn all the so-called "exciting" tech. Blockchain, AI, VR, etc. Lean stuff that speaks to you, but don't feel like there is any pressure to. The fundamentals are much valuable than the flavor of the month hotness, no matter how powerful or interesting it is.

Otherwise, have fun! It's a marathon, not a sprint.

Collapse
 
lauragift21 profile image
Gift Egwuenu

Thanks Ben 🙏

Collapse
 
molly profile image
Molly Struve (she/her)

I have been at this for 6 years now and I think one of the biggest reasons I have succeeded is because of the people I have had the privilege to work with. Especially when you are starting out and looking for your first job, pay attention to the people! Your future coworkers matter more than you think. Are they smart people that you want to learn from? Are they willing to mentor and teach you? What are their teaching styles like? Having a good mentor and a solid support system is going to set you up for career success.

The 3 guys I worked with at my first job were not only incredible teachers, they were also extremely supportive. Days when I doubted myself, they believed in me. They laid the foundation that my dev career has been built on and I can't thank them enough for that. Half of this job is about having confidence in yourself, and if a company can help give you that when you are starting out, nothing is more valuable.

Collapse
 
cmiles74 profile image
Christopher Miles

I've been working in software development for a long time, I've found that keeping an "engineering notebook" has been really helpful.

Whenever I start a task that I have never done before, I flip to a new page in the notebook, add a heading that describes the task, the current date and the time. As I do research I note the important bits and when I start doing the work, I do my best to note the different things that I have tried. When the task is complete I write down the time to give myself an idea of how much effort it took.

Even though the notes are messy and a little all over the map, I have found that they are great starting points when I need to write up documentation. If I have to do one of these tasks again, flipping back to the notes from the last time I did the task often saves me a lot of time.

Lastly, it is sometimes rewarding to look at the notebook and skim through it. I am always surprised how varied the tasks are and it often reminds me that, yeah, I am pretty productive most of the time!

Collapse
 
conw_y profile image
Jonathan

Great tip; I do this a lot. I always keep a giant notebook on my desk with lots of empty pages for exactly this purpose.

It's also great for communicating with other developers, either explaining something to them or having them explain it to me.

Collapse
 
joel profile image
Joel Krause

Hey!
First time poster here 🙋🏼‍♂️

I’ve been a web developer for just over 6 years now (6 of them self employed and the rest working for an agency).

I’m pretty passionate about this topic because I was led to believe to get a job or become a good dev you needed to know everything... and wow was I wrong!

  1. You don’t need to know it all! I use Google atleast 100 times a day even for some pretty basic stuff. Don’t be ashamed, even the most seasoned devs do this.

  2. Keep on learning. There are plenty of resources. The web is always evolving. You don’t need fancy degrees, I’m completely self taught.

  3. Have fun! It’s an awesome and rewarding career.

Collapse
 
hazopouli profile image
FrumpyDog

Back-End Dev and Architect for 20 years

  • Don't do the one foot deep and one mile wide. Learn a technology that is widely used in the industry and perfect the art of developing in it properly. Stay updated with the latest versions.

  • Don't do the back-end to front-end or vice-versa. Pick one and do it well.

  • Use patterns and proper approaches.

  • Learn how to test your code.

  • Go above and beyond. Work extra hours, review other people's code, ask questions and find a good mentor. Volunteer to take on challenging tasks.

  • Contribute to open-source projects.

  • Just code. Practice makes perfect.

Collapse
 
scottshipp profile image
scottshipp

10 years for me, or 8 depending on if you count my early stint as an SRE/maintenance programmer fixing bugs.

My two biggest takeaways are:

  • Prove that it works with tests, or expect that it doesn't

  • Plan out small discrete iterative changes you can complete in a day, and commit them every day

Collapse
 
loki profile image
Loki Le DEV

I've been in coding professionally for ~7years now.
As a beginner I remember that at first I was afraid/shy of modifying code, like every little change I made in the codebase I felt I was gonna break something. Because I thought I didn't understand well enough the code or didn't have an overview of the whole codebase.

So my first advice is, don't be afraid to change some code!
The team should have unit tests and code reviews that will help you feel confident and improve much faster.

Then don't be afraid to read the code also! Be curious, go deep. You're using a library and you feel it's not working as expected, if you have access to the source, go read it. Even when it's working, be curious.
You'll find that nothing is too complex if you take the time to read. Try to get the big picture.

And at least, make it work! Sometimes you are stuck on a tricky bug, something is not working and you don't understand why. This is when you learn the most. Keep going and keep trying. Don't hesitate to ask for help. What matters is that you understand how it was solved.

Sometimes you will have to work on less interesting stuff, it's part of the job, just get it done quickly, don't postpone or try to avoid it. Then you can move on to the exciting stuff. You'll always learn something in the process and be productive.

Collapse
 
peterwitham profile image
Peter Witham

I think I've been developing in various forms since the mid 90's, yeah remember those years in Web? :)

My advice to those in the early stages would be to pursue the things that interest you, do not give in to the voices of those that say "But this is the next big thing, you should learn it".

At the end of the day, if you are not passionately interested in a particular technology or area then you will never achieve the results you desire and you will start to hate the work.

Collapse
 
derek profile image
derek • Edited
  • Break things often: Just from personal experience this is where I believe I've learned things faster and more deeper; also painful experiences are easier to remember (non-forgettable).

  • Kill the ego: Ask any question you desire so you can learn regardless of backlash or worrying of what others may think of you. Also if you always come off as a "white belt" people usually are more open in sharing their knowledge versus if you come off as a "🥋" people usually are more hesitant to share their knowledge for whatever reason: competition, fears of being wrong themselves, judgement, etc.

  • Be wrong: I think it's good to debate your opinions, technical arguments, theories and assertions. Being wrong is a good thing, it means you've learned something in the process; don't be afraid to be wrong. Welcome it gladly.

  • leadership: Career wise this is "usually" unescapable. Most advancements "usually" are accompanied with some sort of management/leadership role. Leadership in my opinion is probably the hardest skill to acquire and develop; wayyyy harder than programming. I personally research military leadership, I believe they've created systematic approaches towards developing traits of good leaders.

Collapse
 
peteruren profile image
Pete

Been a professional developer for 25 years and programming for almost 40. Working on many different platforms in many different industries building many different products. Learnt a few things.

In my experience, there is no more important skill in software development than the soft skills of identifying and learning to solve problems. Honing those skills should be in the back of mind of any work you do. They will serve you well wherever you work, whatever you develop, whatever you are using to develop.

Don't listen to anyone telling you there is only right or wrong way to do things. In such an abstract and diverse world of 'cyberspace' (yeah I hate the word too now 😁) there are countless ways of approaching any problem and nobody knows everything.

Feel free to seek and take onboard constructive ideas and suggestions as you go but dont be a slave to them. Feel free to experiment and get creative before you get locked into rigid projects, crazy deadlines and platforms and standards you have no say in working outside.

Even if you go down the wrong path you learn as much from your mistakes as your successes and you might learn something new that you can apply elsewhere.

Plenty of online communities out there. Steer clear of those who just bitch about things they hate, or use words NOOB/newbie in derogatory manner. You want to surround yourself by supportive, helpful and mentoring people. Like here.

Make time for fun whatever that is or you are going to burn out. You decide what that is.

Finally, accept that you are going to be on a hamster wheel of professional development for the rest of your career. If your employer fosters that you are onto a winner. Most expect you just do it in your own time at your own cost.

Good luck! It can be a really rewarding path you are taking.

Collapse
 
__mfarag profile image
Mina Farag

+8 yrs
Advice : please keep learning. And be gentle with your self.

Collapse
 
rinisimon profile image
Rini Simon

hey
dev.to/rinisimon/to-my-younger-sel...
I hope this is helpful :)
All the best.

Collapse
 
pigozzifr profile image
Francesco Pigozzi

Stop struggling about seniority. What really matters is your approach to problem solving, not some kind of label attached to your job description. Just saying.

Collapse
 
conw_y profile image
Jonathan

Test test test! And then test some more!