Taking a job as a solo "lead" developer at a startup for my first job out of school.
I picked up so many bad habits and it took a while to figure out how to collaborate with others on code. If I had to take that same path again, I would get involved with an open-source project to solidify the fundamentals.
- My Git commits/changesets were huge. There were so many code changes to so many files that it was very difficult to review. I learned how to write better commit messages and streamline my commits a few years later.
- I ignored best practices for the sake of getting things done. Programming wisdom and best practices seemed like overkill at the time, as I only measured my work by the number of lines of code I wrote. I needed to find the middle ground between quality and productivity.
- I organized projects/files inconsistently. This was because no one else had to work with the repo at the time.
- I was bad at managing expectations of stakeholders and estimating tasks. Because I was inexperienced, I would over-promise and under-deliver at times. As I went along, I realized better ways of communicating what could and couldn't be done within a sprint. Now, I think when someone asks for a feature -- the answer should generally be yes, with whatever caveats/blockers that are foreseen at the time.
I picked up so many bad habits and it took a while to figure out how to collaborate with others on code. If I had to take that same path again, I would get involved with an open-source project to solidify the fundamentals.