loading...

Managing your time as a junior software developer who wants to make a progress.

saraahmed626 profile image Sara °°° ・1 min read

Lately I have been struggling to make a good balance between my coding gools and my work as a software developer freelancer, so I have started to question my self? What am I doing wrong?
Is it a bad time management, gools are not realistic? Lack of motivation?
I can't find an answer till now...

Another factor is that I have to use number of technologies because the team am working with are using it, it's good for me to find this environment, and I have been learning a lot by coding projects with team, however sometimes I feel like am not doing enough, or am not able to be as good as them, I know they have much more experience than I do have but the feeling I get can not be ignored.
At the same time I want to learn the newest technologies, am taking two course to do so.

Sometimes I feel like am distracting my self instead of focusing on a couple of things at a time.

Now I have completed one year as a software developer. But I need some advice on how to balance between my personal coding gools and my work.

Discussion

pic
Editor guide
Collapse
codemouse92 profile image
Jason C. McDonald

What am I doing wrong? Is it a bad time management, gools are not realistic? Lack of motivation?

It sounds like you're dealing with burnout! That happens when you push yourself so hard to achieve, ignoring your body's warnings that it needs a break, that your mind takes over and puts the brakes on by itself.

Read more about burnout...

...sometimes I feel like am not doing enough, or am not able to be as good as them...

This is literally just Imposter Syndrome talking. There will always be someone in existence who is "more skilled" than you at any given task, and that's true for everyone alive: instead, focus on what you can do! There's a developer somewhere who aspires to your knowledge and skill level. Don't get caught up in comparing yourself to others. Strive for your personal best, and learn to be content with that.

Read more about Imposter Syndrome...

At the same time I want to learn the newest technologies, am taking two course to do so.

Continuous learning is good, but I've learned the hard way that, once you're past the essentials, time spent learning concepts you don't have an immediate application for is largely wasted. You won't retain most of the knowledge without practice, and in this industry especially, knowledge becomes outdated before the ink's even dry on the newest edition of the book.

Focus your learning on the things you need either now or next. Achieve mastery of the programming language(s) you already use. Learn new tricks with your current development tools. Expand your understanding of the framework your project is being built in.

If you really want to learn a new technology, first find a project or immediate application for it. If you can't do that, then wait on learning it until you can.

That way, you'll make the most of your learning time, while keeping your projects moving forward.

Sometimes I feel like am distracting my self instead of focusing on a couple of things at a time.

There's a possibility you might be! (See my advice about learning). Our project ideas and ambitions often outstrip our available time. You can do anything you want given sufficient time to devote to it, and that's the rub.

Remember, there is no shame in adopting slow, low-obligation timetables on personal projects. That's why I created and adopted The Cranky Developer Manifesto for many of my own personal projects.

I recommend writing out a list of all the projects you have going, both at work and personally, and then prioritize them. Figure out which are mandatory, and which are "nice to have". Determine which to work on now, next, and later.

If you find you're carrying too much responsibility at work, this is the time to have a conversation with your supervisor. Explain that you want to do your best at every task, but that you're spread too thin in your work assignments to achieve that. He or she may be able to help you to adjust deadlines, reprioritize tasks, or even take some things off your plate.

I need some advice on how to balance between my personal coding gools and my work.

First, remember that your brain needs downtime too! You need to learn how much energy you actually have, and respect your body's demands for a break. Are you getting regular exercise, even if it's just a walk around your neighborhood? Is your sleep schedule optimal? (Personally, I work better as a morning person, a la 5 AM, than as a night owl. Find what works for you.) Are there other hobbies that you want to devote attention to?

Work out a regular weekly schedule for yourself. Schedule in 30-minute blocks. Explicitly schedule "free time" for yourself! Any time that is unscheduled will either get filled with more work, or with unrewarding time-sinks (like 3 hour Minecraft marathons when you'd really rather be coding.)

The purpose of this schedule is to give yourself a framework: you can move those time blocks around, and even deliberately trade them off. The point is to set aside time for work, for personal needs, for rest and play, and for hobbies, including coding.

You may, in fact, find that you need to take some pressure off yourself in the personal coding arena. If so, respect that need! It won't last forever. Once your stress level has had a chance to go down, you'll find that you desire and drive to code for yourself is back at full strength. Then, armed with a regular schedule, you can begin fitting it in without burning out.

Collapse
murkrage profile image
Mike Ekkel

Continuous learning is good, but I've learned the hard way that, once
you're past the essentials, time spent learning concepts you don't
have an immediate application for is largely wasted. You won't retain
most of the knowledge without practice, and in this industry
especially, knowledge becomes outdated before the ink's even dry on
the newest edition of the book.

Focus your learning on the things you need either now or next. Achieve
mastery of the programming language(s) you already use. Learn new
tricks with your current development tools. Expand your understanding
of the framework your project is being built in.

If you really want to learn a new technology, first find a project or
immediate application for it. If you can't do that, then wait on
learning it until you can.

That way, you'll make the most of your learning time, while keeping
your projects moving forward.

A thousand percent this! You've got to find a way to break out of 'tutorial hell'. Doing courses to get you going is great but at some point you need to practice the things you've learned. You'll only keep doubting yourself and your abilities if you keep on doing courses. That was my experience, at least. I just couldn't shake this feeling I wasn't ready to get going. In hindsight: I totally was and so are you!

Collapse
saraahmed626 profile image
Sara °°° Author

Hi Mike!
Thank you :)

Collapse
saraahmed626 profile image
Sara °°° Author

Hi Jason :)
Thank you so much for all the valuable feedback, and useful resources.
Totally appreciated!

This will serve as a guide for me to go through again and again everytime I feel like this.

Collapse
maelingmurphy profile image
Maeling Murphy (she/her)

This is incredible advice that can be applied to so many areas of life! Thank you so much for sharing!

Collapse
tomekbuszewski profile image
Tomek Buszewski

Hey Sara!

This is totally normal for a junior developer to feel that way. While working with experienced developers, it is very easy to find yourself intimidated. This is nothing to be ashamed or frighten.

What are your current goals? How many goals do you have? Maybe too much? Can you name a few?

Do you get any mentorship at work? Do your code gets reviewed and discussed with you? If yes – are you able to talk about what you did wrong?

Collapse
saraahmed626 profile image
Sara °°° Author

Hello Tomek!

Thank you :)
At the beginning of the year I have set a goal that consist of about 9 milestones; among them; contributing to open source, making a mobile app for a personal project not for fun but to make a business out of it, learning WordPress, making a game, a blog... etc

Well I do get help at work, but sometimes I don't, like when started to develop a mobile app I knew Html, css, JS (used Cordova to develop it) and was given a similar app then was asked to start working, I felt so intimated and postponed it till deadline was approaching, so while working on it was totally under pressure, learned a lot but was so painful 😅.

My code get reviewed sometimes and sometimes no. But am reading the clean code book to make sure that am not missing anything.

Collapse
tomekbuszewski profile image
Tomek Buszewski

Hey Sara!

Perhaps you took too many goals? Making a game or a mobile app is something quite big. I mean, they can be done in mere days, but they won't represent any good value then, would they? I think you should choose less milestones and pursue them to the limit. For example, if you go for a mobile app, try different stacks, languages. Perhaps you'll want to only use Swift and make apps for iOS. Or you'll love React Native. I am saying here, take your time, you are not missing out when learning one thing thoroughly.

Perhaps try to ask for a buddy at work. Someone that'll help you out, show you new things etc. Also, feeling intimidated is very normal, but don't let it overwhelm you. Ask, when something isn't clear. As as many times as you need. By not asking questions you are letting people thing that either you know all of this, or you don't really care. Both cases are dangerous.

Reading is good, and Clean Code is a good choice, sure, but getting your code reviewed is something more. It's a direct insight from people around your project. Ask for a review every time you push a feature branch.

Thread Thread
saraahmed626 profile image
Sara °°° Author

Yes u guess my biggest mistake was distracting my self be setting this diverse number of goals what made me feel that I didn't accomplish a lot when not checking all of them!

Thank you Tomek for taking the time to reply, really appreciate it.

Collapse
lautarolobo profile image
Lautaro Lobo

Using a schedule, having realistic and measurable goals helps. You may want to use the Pomodoro technique to improve your focus when working/studying. Then, you can have like 2 hours for a MOOC and 2 for work, and then time for yourself/dinner whatever, and 2 more hours for work... you see, having this kind of daily schedules helps a lot...

Collapse
saraahmed626 profile image
Sara °°° Author

Hi Lautaro!

Thank you so much for the valuable advice.

Collapse
mkimont profile image
Matt Kimek

I don't understand the problem. Could you say that in one sentence?

Collapse
saraahmed626 profile image
Sara °°° Author

I have a number of coding related goals, and am working as a freelance software developer, also this is my first year to code, so was looking for ways to balance between all and make some good progress at the same time without feeling burned out or get discouraged

Collapse
mkimont profile image
Matt Kimek

I still don't understand ;/ You planning to ask before burnout how to not burnout ?

  1. Don't copy other people. Burnout is a part of everything. People making big thing from it. Big thing is to forgot 1 zero in your code when your client making 6 figure payment. This is a problem.
  2. Practice practice practice. Coding is like learning foreign language. You will be burnout out plenty of times. If you will find balance - you will write a book worth millions as it will be really easy to transform IT to any other words and apply in life.
  3. Enjoy. If you have enough of coding, check Twitter and follow crazy web developers, watch Awwwards websites, Chrome/Firefox new release with new browsers features, youtube web conferences where there is not a lot of code.
  4. Ready a book for memory, architecture, text analyzing, architecture, data structure etc. Remember that development is mostly happening in head. You ask good question, you will have instant answer. Like - How to sort or reduce array, should I use foreach --> did somebody create solution for it -> isn't the basic function which will be used by all -> there must be a build in function for it -> MDN Javascript references -> You wrote your solution in head without codding and using .sort()/.reduce() instead of foreach etc.