30 lessons I wish I could go back and tell my junior self
My biggest life-lessons from 20,000 hrs spent as a software engineer that can be the difference between a thriving skillset and career, and feeling stuck in a loop.
๐๐ฎ๐ข๐จ๐ฆ ๐ค๐ณ๐ฆ๐ฅ๐ช๐ต: ๐๐ฐ-๐๐ช ๐๐ณ๐ฐ๐ฅ๐ถ๐ค๐ต๐ช๐ท๐ช๐ต๐บ ๐ฐ๐ฏ ๐ ๐ฐ๐ถ๐ต๐ถ๐ฃ๐ฆ
1. Consistency beats random hustling
Iโve always loved to hustle. But itโs only gotten me so far.
Hustling is great in little motivational spurtsโฆ
What itโs not great for is a longterm growth strategy. When our motivation fails, we fall back to our systems and our daily habits.
If you have no daily habits of learning and growth, you wonโt make much progress.
Several years back I was stuck on endless tutorials and weekend hustling not making much progress.
Hereโs what saved me and helped me massively level up and 2x my salary.
Go ahead and read it, and then read the other 30 tips ๐
2. Anyone can learn software engineering
I'm an Average Person who became a senior software engineer. You can be too.
Am I decently techy? Yes.ย
Have I ever spent 1000 hrs on leetcode? Nope.ย
Have I built my own computer?
Built my own compiler?
Built my own app?
Nope. Nope. And Nope.ย
Have I built projects in two weeks that resulted in $70,000 in additional revenue for my company?
Have I built an email campaigns tool thatโs now scaled to 750,000,000 emails sent?
Have I grown from graphic designer, to wordpress sites, to fullstack engineer, to tech lead?ย
Yes. Yes. And Yes.ย
For me itโs all been about:
a drive to own my own growth
prioritizing learning and growth
finding engineers and mentors I can learn with/from
Your growth will compound if you keep showing up.
Be patient, and believe in yourself. You can do this!
3. Join a team where others are smarter, but still willing to help you level up.ย
Iโve always heard you are the average of the 5 closest people you hang out with.ย
Thatโs usually quoted as a negative, but you can totally use it to your advantage.ย
Surround yourself with people who are growing.ย
Itโs amazing how much you can grow by just being around other people who are growing and eager to learn together.ย
This has been true for me the past 3 yrs.ย
I joined a startup that was filled with all the 10% kids.ย
Yeah, you know. The ones in college on the group assignment that did all the work? I went from being the smartest person in the room to being the dumbest.ย
But it was the best thing ever for my career and skills.ย
For a while there, every day was a struggle.ย It almost felt like I was starting over.ย
It was almost embarrassing seeing what everyone else was cranking out while I onboarded and took 6 weeks on a 2 pt task they assigned to me.
But they stuck with me. I was with a team that let me ask stupid questions. They let me pair with experienced engineers and take on challenging projects.
Every day I learned and grew so much just by rubbing shoulders and working with other smart engineers.
4. Take on challenging projects to stretch yourself
Looking back over my career, itโs been the times I volunteered for or was just assigned a difficult project that I grew the most.ย
Figuring out how to process and save thousands of webhooks / secondย
Exceeding the data binding limit in Angular and building a scroll offloader
Optimizing complex database queries so they ran in 300ms instead of timing outย
Building and scaling an email campaigns tool thatโs now sent 800,000,000+ emails
None of those projects were easy.ย
Some of them I had a freak out moment when I started.ย Some of them I got stuck on for a while.ย
But I did it! I figured them out and grew in my skills! ๐
Now anytime Iโm working on something particularly difficult, I get excited because it means Iโm really going to grow. ๐ช
5. Freelancing is a business, you have to be good at coding and running a business
When I first started my journey as a software engineer I decided to run my own freelancing business. I figured it would be a good way to step my toes into coding.
It was much harder than I expected.
I thought I would be able to sit around coding up really cool websites and apps, just working for myself and really fun companies.
The reality: freelancing requires you to run a business.
I actually had to learn sales, marketing, finances, contracts, retainers, cash flow, charging what you are worthโฆ and on and on.
I definitely learned a ton and wouldnโt trade the experience, but I didnโt realize how much โbusinessyโ things Iโd be doing, vs. just learning coding like I hoped.
tldr;
You can definitely learn a lot doing it, but just go in with your eyes wide open.
Itโs a business, not just a heads down coding shop.
6. Drive the screen while screen sharing
When I was learning fullstack development early on I had a mentor engineer who was a wizard.
You know the ones, the kind that build compliers for fun on the weekend.
Whenever we paired it was easy for me to let him screen share and walk me through things where I was stuck or needed a deeper dive.
However, doing so actually slowed down my learning.
Keep reading with a 7-day free trial
Subscribe to Level Up Software Engineering ๐ to keep reading this post and get 7 days of free access to the full post archives.