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?
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (19)
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 :
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?
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. ☺️
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
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.
Write clean code and avoid the distractions of emerging technology
Ben Halpern ・ Jan 14 '18 ・ 2 min read
Otherwise, have fun! It's a marathon, not a sprint.
Thanks Ben 🙏
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.
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!
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.
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!
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.
Keep on learning. There are plenty of resources. The web is always evolving. You don’t need fancy degrees, I’m completely self taught.
Have fun! It’s an awesome and rewarding career.
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.
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
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.
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.
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.