DEV Community

Andrew Smith
Andrew Smith

Posted on

Quickfire Discussion: I'm a Junior Developer, tell me your top 3 pieces of advice.

Quickfire Discussion: I'm a Junior Developer, tell me your top 3 pieces of advice.

What did you wish you knew when you were a Junior Developer?

What would you tell current Junior Developers?

etc

Latest comments (22)

Collapse
 
everton profile image
Everton Agner

Debug your code

I've taught basic and intermediate programming to students and co-workers, and one recurring behavior is that people often forget the debugger is there to help. Be careful with endless trials and errors when troubleshooting bugs in your code, but instead take some time, debug it and understand the flow it's taking and where are the gaps.

Is programming a job or a career for you?

It will take a while for you to figure this out, but will help you realize where do you want/need to put your focus on. If you really enjoy and want to improve your programming skills, do not rely solely on what your job has to offer you challenge-wise. Study and practice on your own, keep reading about what are the current trends and why, and if you're up to, build some side projects.

Refactor always

On the first few years of your career, you will often join teams that are rebuilding something, often a redesign of an old, legacy system. Your new system is cool and shiny, and everyone loves it. After a while, in exchange of productivity, people might start taking shortcuts to deliver things faster; New members might be assigned tasks which they have no idea where to start and will deliver code outside your standards; Also, if you have plenty of unit tests, which are there to help, you might be intimidated when you think about refactoring something that's there for a while, and heavily tested: if you refactor that, you'll have to review/rewrite so many tests! After a while - usually after the team changed so much it has no faces from the original team, they realize that - ta-da! - they got a new legacy system, and the cycle repeats. To an extent, much of this could've been avoided if the team was committed to quality and were not afraid of refactoring code. Well-written, flexible and secure code can accommodate design changes and be submitted to new business needs.

Collapse
 
kayis profile image
K

Try things out standalone before integrate them in an existing code base.

Github is more important than Stackoverflow, be because the code always tells the truth.

Don't sweat that you take longer to learn than others, there will always be people who start learning later than you.

Collapse
 
tyoc213 profile image
tyoc213

Read other people code (there are a lot of code out there this days) read specially in the areas that you like.

Have a purpose to learn something, like do a usefull app, or make a lib or something.

Collapse
 
jfrankcarr profile image
Frank Carr

I've been in this career for 30 years. I've done poorly with my #1 suggestion although I'm improving, OK with #2 and I've done pretty well with #3.

(1) Healthy eating and exercise habits - It's easy to develop a "programmer gut". Make sure you eat right and in moderation and take time away from the screen to exercise.

(2) Learn to tolerate BS. Don't let it rattle you when the project you just spent 6 months on is canceled, your company shuts down or other unfortunate events happen. Also, managers, other developers and project sponsors can be total jerks at times. Learn to roll with the punches because there always will be a punches, usually a lot of them. Have an exit strategy at all times just in case things go bad.

(3) Always Be Coding. Programming requires constant learning and the best way to learn is to find something new to code. Don't let yourself stagnate in a position or in a programming language.

Collapse
 
galvao profile image
Er Galvão Abbott
  1. Have discipline;
  2. Read the Documentation;
  3. Forget tools, patterns, languages and frameworks: They are always changing. Focus more on concepts. Knowing the concepts and theories (and putting in practice, of course) changes EVERYTHING.
Collapse
 
benhosk profile image
Ben Hosking
  1. Learn SOLID Principles and read The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin

  2. Always focus on improving. Improve you knowledge, skills, experience, soft skills. The more you learn, the more you earn #HoskWisdom

  3. You are responsible for your career. You must drive it and know where you are going. Know what your dream job is, know what your next role is and start learning heading in that direction.

Longer version can be found on my blog for Dynamics devepers
crmbusiness.wordpress.com/2017/09/...

Collapse
 
isaacdlyman profile image
Isaac Lyman

Just this: read voraciously. Read about everything. Read whatever you can find. Read on the job. Read at home. Read waaayyyyy more than you need to in order to solve a given problem. Read until you know the right way to do the thing. Your market value will rise exponentially.

Ask your company to buy you some books. I always recommend Code Complete, but also get some books on the languages or technologies you're using.

If your company won't buy you books or doesn't let you spend a few hours on the clock every week reading in order to sharpen your skills, quit. Per hour, working increases your value by fractions of a cent; reading increases your value by dollars.

Collapse
 
josegonz321 profile image
Jose Gonzalez • Edited

1. Your real job

2. A business (aka workplace)

business

Original tweet: twitter.com/JoseGonz321/status/917...

3. Learn personal finance

  • Don't impress yourself with how much you earn, impress yourself with how much you keep.

  • Frugality is king whether you are making $50K or $100k+

  • As you become more senior, the money will be there. But the salary ceiling is very real. Find out what you want to do: (consulting, service, product?) as you progress in your adventure.

  • Invest

Collapse
 
elazar profile image
Matthew Turland

I've given a talk (video, slides) on this very subject.

Here are my top three pieces of advice for a junior developer:

Embrace learning

Always seek to improve

Be patient

Collapse
 
chrisvasqm profile image
Christian Vasquez

Thanks for making this post!

All the responses are 🔥💪🔥

Collapse
 
pabloide86 profile image
Pablo Rotondo

Ask, ask, ask
Don't be afraid to ask, there's no such thing as stupid or trivial questions. The more you ask, the more you learn how to do the right questions. And asking the right questions is a good way to show that you care about what you are doing, and that you are growing in the right direction.

Give back
Share your knowledge with others. Don't be scared to share an article or a peace of code with an architect. Try to help other developers to solve problems. Share your ideas, thoughts, concerns.

It's a marathon, not a sprint
Don't rush, be consistent, become a reliable member of a team, keep learning. Master your tools and your sources of information. You will find yourself in situations of stress and you need to learn how to handle it to avoid burnout and frustration.

Collapse
 
bgadrian profile image
Adrian B.G.

All the good advice were already taken 🤠

Focus
There is too much noise out there, especially in the web dev area the ecosystem is so large that it's hard to find a direction. Keep evolving but master a skill/library before moving to another one, the devil is in the details and it takes a time to get there (reaching the limitations of a system, process, framework, language etc).

Steal the craftsmanship
Having a master or seniors around you will boost your career, if not find ones or quit your job, no junior should work alone on a project, is a loss-loss situation.

Like any physical craft, you should observe the senior practitioners, example if you are a web dev you can see a live/coding/panel with Dan Abramov and see first hand how a couple of technologies can boost your productivity 1000%.

Don't compromise (too much)
There is a fine line which you'll soon grasp, between being a professional and just a "worker that does tasks". If you work in a technical Env you're lucky, the guys in charge of the "tasks" know about and appreciate software methodologies (like automatic testing and post mortem team meetings to name a few), if not you have to struggle with the bussiness managers, trying everyday to improve your workflows.

You will soon learn how and when to say NO, sometimes what is good for you and your future or your project is not what the managers ask of you (basic example work overtime, apply dark patterns etc).

Collapse
 
_bigblind profile image
Frederik 👨‍💻➡️🌐 Creemers
  • The field of programming is so huge that it's easy to feel like everyone else is smarter than you because they know so much that you don't. Different people have different areas of expertise. You've probably solved problems of had experiences they haven't as well.

  • Success means different things to different people. Not everyone wants to become a manager, an entrepreneur, ... And that's perfectly fine.

  • This may not seem related to programming, but it is: When you're physically unwell, you go to the doctor. Don't be affraid to do the same thing for your mind.

Collapse
 
ben profile image
Ben Halpern

Think longterm

Progress is up and down in this career. Don't pay attention to the short intervals. Lonterm gains are clearer.

Avoid FOMO

Fear of missing out on different technologies can be paralyzing. Have fun with what you're currently into and realize you can catch up later with the rest.

Don't make apps for your friends and family

Seriously. Everyone wants you to partner with them on something. Try to manage their expectations.

Collapse
 
hudsonburgess7 profile image
Hudson Burgess

Get curious

Have side projects of varying sizes / timeframes. Read a lot (books, more dev.to articles, other blogs... Twitter is your friend). Listen to podcasts. Experiment with new languages / frameworks / tools. Contribute to open source. Whatever 'curiosity' looks like for you, do it. Don't leave your craft at work.

That being said...

Know when to walk away

Don't hesitate to ditch a problem that's seriously frustrating you. Chances are you'll come back tomorrow and solve it in 5 minutes. Don't sacrifice the long-term love of your craft and drive yourself nuts over short-term bugs. To quote Rework, "ASAP is poison."

Speaking of your craft...

Software engineering is a craft. Treat it as such.

Learn to write Clean Code. Use TDD. Get really comfortable with the tools you use every day. You'll save yourself and your team loads of time and effort, and generally feel like a bad@$$ knowing that you're good at your job.

It's smart to ask questions like this as a junior dev, when your habits are still relatively malleable!

Collapse
 
chrisvasqm profile image
Christian Vasquez

Can't recommend Clean Code enough. It changed my way of thinking about code so much!