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.
Top comments (14)
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...
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...
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.
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.
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.
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!
Thank you :)
Hi Jason :)
Thank you so much for all the valuable feedback, and useful resources.
This will serve as a guide for me to go through again and again everytime I feel like this.
This is incredible advice that can be applied to so many areas of life! Thank you so much for sharing!
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?
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.
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.
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.
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...
Thank you so much for the valuable advice.
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