12 Tips from a Mid-level Developer
Abbey Perini

Abbey Perini @abbeyperini

About: 💻 Full-stack web developer, crafter, ✍️ blogger, cosplayer, 🧶 fiber artist, yoga teacher, and 🎮 gamer

Location:
Atlanta, GA
Joined:
Jan 22, 2021

12 Tips from a Mid-level Developer

Publish Date: Apr 17 '24
427 51

I officially have three years of experience and a mid-level job title. My best advice has changed significantly since I wrote 12 Things I learned During My First Year as a Professional Developer two years ago.

1. Level Doesn't Matter, Results Do

Nobody asks how long you've been developing if you are solving their problems. Don't put off learning about a topic you're interested in just because it's called advanced. You never know what you'll be asked to build, so it might just come in handy sooner than you think.

2. Don't Memorize

A picture of a brain captioned has the capacity to store and memorize an almost infinite amount of information won't

Learn how to find the information you need. I'm not talking about StackOverflow and GenAI. For the tools and languages you're using, know where the spec or documentation lives. Find out who writes the best guides.

It doesn't matter if you can't remember if the ? or : goes first when you go to use a JavaScript conditional operator. It matters that you know when to use a conditional operator and where to find the exact syntax.

Tools constantly update. Always check the version of the docs you're reading. Find a way to keep up to date, whether it's a newsletter or that one friend who's really into CSS.

3. Go Deep on the Basics

Take it from someone who's worked in three JavaScript frameworks in 3 years - if you know the basics well, it's a lot easier to learn a new tool in the ecosystem. You'll probably end up writing simpler, more robust software. You won't try to write features that already exist because you didn't know they existed. You'll better understand the errors you get and anticipate errors before you cause them.

4. Systems Thinking Will Get You Far

Troubleshooting any bug requires systems thinking. If you don't think about the plug in the wall, you won't think to check it when the toaster won't turn on. Being able to think about the system as a whole makes it easier to predict edge cases and design new features. Read more on how to create mental models for your codebase in Getting Started in a New Codebase

5. Trying Before Asking Ensures It'll Never Be a Stupid Question

Developers are usually problem-solving oriented. If you can show you tried a few things and they didn't work, they're probably going to want to dig in themselves to find out why the obvious solutions didn't work.

6. Every Line of Code is a Liability

A programmer, paused mid-typing saying

Write code like someone else is going to have to fix it. (Even if that someone is just you in 6 months.) Install packages like you're going to have to update them frequently. Document the why so you don't accidentally break something later. Learn the opinions of an opinionated tool before you make it integral to your system and find out its opinions clash with features you need.

7. Practice Reading Others' Code

The way software development is often taught may lead you to believe that you will often get to create fresh, brand new apps. It's much much much more likely that you will be fixing and adding features to an existing codebase. You may even spend more time reading code than writing it. Practice reading code and refactoring code without introducing new bugs.

8. Test, Test, and Test Again

As Chocho said in his DevNexus 2024 talk, "Code is theory. Software is practice." Always run your code and test it before asking for review. Practice writing tests as much as possible. You'll find anticipating how a user could break your code and thinking about more than the happy path will make you a better developer.

9. Practice Turning Requirements into Software

Ticket #387

  • Add a button to the page that opens a modal and allows a user to edit this data.

It will be expected that you can turn a requirement like that into a list of steps or pseudocode. If the ticket is too vague, it'll be your job to get the answers you need.

After ironing out those steps, you'll be expected to turn them into code and (hopefully) tests for that code. Then it will be your responsibility to get that code through your company's version control, (hopefully) review, (hopefully) QA, and deployment process.

Open Source is a great place to practice this.

10. Community is Extremely Important

You're not going to get the most nuanced, unbiased perspective in social media posts. You need a support network to call when you need that perspective.

Mentorship is a part of this. Going to local meetups and conferences are a great way to build your network and expand your development world view. Joining networking groups will give you access to senior developers' perspective.

Don't try to do this job all on your own. There's a lot of information out there, and it's easy to get overwhelmed or get tunnel vision.

11. Find What You Enjoy About Programming

A comic with 4 panels, each showing a progress bar of a program compiling. In the first three panels, the developer is sad saying

I'm not saying love your job or become the elusive Passionate Programmer. However, constant learning is opening yourself up to repeated discomfort. If you don't know why you want to keep waking up and doing that to yourself, you're going to burn out. It can totally be a selfish reason, but you have to know your why.

12. Everyone's on Their Own Journey

You're not competing with others' careers and content. Someone else's path to success may not work for you at all. Focus on your unique perspective and strengths. Find and share your voice. Someone out there wants to hear it.

Conclusion

Looking at my (or anyone else's) profiles may lead you to believe that my road to mid-level developer was straight and smooth. It couldn't be more to the contrary. I've stumbled and cried, broken prod, burnt out, and gotten stuck in many a rabbit hole.

For that reason, I have to earnestly thank my husband, family, friends, and tech community for helping me stay on my feet. I must also thank many coworkers for taking a chance on my potential. Without y'all, I wouldn't have made it this far. I'm so grateful that I have.

Comments 51 total

  • Andrew Bone
    Andrew BoneApr 17, 2024

    Number 2 is so important, "I don't know" is perfectly fine especially if you can add "but I can find out".

  • Borzoo Moazami
    Borzoo MoazamiApr 17, 2024

    Thank you for sharing, Abbey

    I am a self-taught programmer, and like many others in our field, I experience imposter syndrome from time to time. Learning programming concepts on my own and not having a degree in CS are constant concerns that come to mind. Starting to learn programming at 27, in addition to the aforementioned points, made me even more insecure.

    By sharing all of this, I want to highlight another challenge that many juniors may encounter: shifting focus.

    Now that I've overcome this mindset and found a bit of comfort and confidence in my path, I can see more clearly that I've wasted many days of my working hours being sad about the role I have and pondering a switch from front-end to back-end.

    The lesson I've learned from this phase of my life is that by giving myself enough time and staying focused on my path, I can overcome my insecurities and find joy in my role again.

    My message to new joiners: find what you love, stay focused, be patient.

    • Abbey Perini
      Abbey PeriniApr 17, 2024

      Imposter syndrome is tough. 💙 This is another area where community is very important. I also don't have a CS degree and started learning to program at 28. I have learned that knowing about both front-end and back-end is a boon even if I'm in a role currently focused on front-end. A lot of this perspective came from talking to senior developers when I was a junior.

      • Borzoo Moazami
        Borzoo MoazamiApr 17, 2024

        Yes, the community really helps. It's definitely important to learn both sides as a software engineer, in my opinion, and creating a T-shaped skillset would really help, sometimes being crucial. However, shifting career paths and putting much effort into a secondary field are what hold some individuals back, as I have experienced myself.

        • Ridwan Yunus
          Ridwan YunusApr 18, 2024

          The you have links to community a beginner can join?

          Thanks.

          • Borzoo Moazami
            Borzoo MoazamiApr 18, 2024

            Sorry, unfortunately I haven't been really active in an online community untill now.

            In the past, I relied on my circle of programmer friends who provided invaluable support. Over time, this circle grew, especially as I worked in various companies.

            However platforms like here ( dev.to ) and freeCodeCamp forum can really help.

            Also ADPList offers fantastic opportunities for mentorship and support.

            • Seeila
              SeeilaApr 18, 2024

              I'm also a self-taught developer who begun at the age of 28. But I only learned front-end first because I was always told that as a self-taught developer, it was better to specialize first in something then doing the T-shaped skillset same as the software engineers.

              And actually, it was the best advise I could get.

              I specialized in vanilla CSS, then went deep in vanilla JS to make a deep dive in React. And my knowledge today, 5 years later, is good enough for having me teaching the software engineers how to use correctly React, setting the good practices and the base front-end technologies to use for the whole company and I was just offered to become the tech lead.

              And this company is also giving my time during my job to learn back-end and devOps. I'm glad I focused on something to be very good at it instead of having tried different technologies, I wouldn't be where I am at today.

              So my advice would be to maybe find what you like best front-end or back-end and focus on one of them first. Be (very) good on what you do and the sky will be the limit

              • Abbey Perini
                Abbey PeriniApr 18, 2024

                And if that works for you, great! I and many other people have made a career out of being a wildcard person/generalist/full-stack developer. I've always seen "T-shaped experience" used to remind career changers that their previous career taught them skills that apply to tech. Using it to describe the types of tools you know well is new to me.

                Being very good at a few things came from solving whatever problems were thrown at me and going deep on what I was interested in. I respect the people who can be consistent and focused on one thing, but that's never been me. Some people learn best by focusing on a few tools while building a project. Others can sustain focusing on one tool, language, or type of problem for a while. Neither is better than the other or reserved for people with CS degrees. In fact, the tip about being able to turn ticket requirements is aimed at new CS grads as well as self-taught developers stuck in tutorial hell. 😉

                The important part is finding what type of learning works for you and what you need to sustain continuous building and learning. It's easy to beat ourselves up for wasting time or not making linear progress, but life happens and we still probably got useful experience (or rest) out of the detour.

                Many of the best developers I know and a whole lot of the best developers in history didn't have a CS degree. I hate to see anyone feeling insecure or sad about common developer experiences. That's why I keep writing these kinds of posts and try to save space for people to share like @borzoomv has.

                People have been assuming this blog is only for people with less experience than me. However, I've noticed a pattern in senior developers limiting themselves. Whether it's from a lack of community/perspective or a lack of confidence or both, it's easy to focus on the things we still struggle with, what we can't do yet, and where we are compared to others. It's a double-edged sword that we as developers have to know what we don't know. I'm proud of anyone who regularly practices the amount of learning, trying new things, and creativity it takes to build things with code. 💙

              • Ridwan Yunus
                Ridwan YunusApr 19, 2024

                Thank you, i'll definetely check these sites.
                I appreciate.

                • Ridwan Yunus
                  Ridwan YunusApr 19, 2024

                  Thank you, i'll definetely check these sites.
                  I appreciate.

    • Laksh Gupta
      Laksh GuptaApr 20, 2024

      Hi Borzoo, I agree with your thoughts. even I started programming when I didn't have a CS degree. it made me feel like doing coding without any vision. I worked on myself and read a lot of articles. I finally, enrolled for a CS degree while working in an IT company. I got my CS degree last year and I still feel like I should have enrolled in the past for regular instead of distance education.

      I've left that feeling a way behind now, and now I have been working in IT for 8 years. I think It's not important for me now. Rather what's important for me is improving my current tech stack and learning.

  • Ndeye Fatou Diop
    Ndeye Fatou DiopApr 17, 2024

    Number 11. is very important!
    There are so many areas in programming and you need to pick one :)

  • Mike Talbot ⭐
    Mike Talbot ⭐Apr 17, 2024

    I am Number 6. Every time we type anything we add to the risk of fragility. Keep it simple. Reuse tested code. It's a winner for me.

    Image description

  • АнонимApr 17, 2024

    [hidden by post author]

  • Qyrus
    QyrusApr 17, 2024

    This is great advice! It's honest, down-to-earth, and not just all about adapting to AI! It addresses real things that we forget about as developers! This was a really great read. Thank you!

  • Ronaldo Correa
    Ronaldo CorreaApr 17, 2024

    As a Mid developer, I agree with everything you wrote. Thanks for sharing

  • chris-richter
    chris-richterApr 17, 2024

    I regret that I have but one clap to offer.

    Your last sentence was the most important one in this post. Just be grateful, be kind.

  • Tracy Gilmore
    Tracy GilmoreApr 18, 2024

    Hi Abbey, An absolutely brilliant article. It highlights everything I have been saying for years.
    I particularly like point 11, as I started in software development many, many years ago by teaching myself, because I discovered a passion. I went on to study a CS degree, which was the main way in to the industry in those days.
    For more than 20 years I have been a web technology specialist and still love my job.

  • Bart97coder
    Bart97coderApr 18, 2024

    Great tips

  • Sebastian Christopher
    Sebastian ChristopherApr 18, 2024

    This is such a good post. I couldn’t agree more. 🙂

  • Emmanuel Eneche
    Emmanuel EnecheApr 18, 2024

    Great Insights right there. Sincerely appreciate this.

  • АнонимApr 18, 2024

    [hidden by post author]

  • Zack Grooms
    Zack GroomsApr 18, 2024

    This is a well-written post, Abbey. I am self-taught and have experienced many of the points mentioned. I have to stay focused. Thanks for the insightful tips.

  • Hendrix
    HendrixApr 18, 2024

    I have been a dev for over 15 years and these are all great lessons to learn. #4 I particular really hit home to me.

    For the vast majority of my career, people have been astonished that they can describe a problem to me and I can usually tell them where the problem is in my first guess. That's because I always make sure to have a deep understanding of how the entire system works.

    And now I will share a tip from an architect that goes along with your first tip (sorta)... Influence is the name of the game. While level doesn't matter, what you do and how you show it matters a lot. If you are constantly proving that you know what you are talking about and build trust within your community, it is a lot easier to influence others to your way of thinking.

    If you can't build that good will and have people respect your opinions, you are never going to get a promotion. As an example, I have been with the same company for most of my career. I was hired at the lowest level of dev and I now have coworkers who have been at the company longer, were 1 to 2 levels higher than me when I started, and now I am higher than them.

    Your point 10 is very spot on in this respect. Having a support system that can guide you and push you helps a lot. It helps point out your weaknesses and how to address them. I would encourage everyone (especially jr devs) to find that experienced person (whether internal at your job or external like meet ups) to be a friend and mentor.

    • Abbey Perini
      Abbey PeriniApr 18, 2024

      I am glad that proving you are technically competent has been enough at your company to garner influence and promotions.

      For others, I recommend keeping a brag doc, so you know what to bring up at performance review time. For those who struggle with self-promotion, I recommend practicing stating your achievements, even if you have to do it so factually even your own brain can't argue. If you find there is no established goal post for promotion at your company or the goal post for your promotion moves as soon as you get near it, I recommend moving on to get the compensation you deserve.

      I am also going to push back on

      Having a support system that can guide you and push you helps a lot. It helps point out your weaknesses and how to address them.

      Many of us get the challenge, pushing, and identifying weaknesses enough outside of our support network. It is totally fine to rely on your support network for only support. Mine has been instrumental in identifying which criticism is worth listening to and what kind of professional development environments will actually further my career/be healthy for me.

  • Theresa
    TheresaApr 18, 2024

    As a senior level with decades of experience, I can confirm this is all excellent advice! At this stage in my career I am mentoring and leading mid-levels. Reading this was a great refresher for me on the mindset and learning opportunities for them.

    • dizhu
      dizhuApr 18, 2024

      Hello world!

  • Chris Dawkins
    Chris DawkinsApr 18, 2024

    Really great article. Something that helped me was that I started reading the entire documentation. I've had a bad habit of just skimming or reading the relevant parts , but reading the whole thing has been super helpful. I don't always retain or understand everything, but it has introduced many new concepts to me and saved me a lot of time overall.

    • Abbey Perini
      Abbey PeriniApr 18, 2024

      I polled two other developers and @fimion does indeed read all the documentation. He's also "that one friend who's really into CSS," so clearly smart people do it.

      • Alex Riviere
        Alex RiviereApr 18, 2024

        To be clear here, because I wasn't earlier, I do tend to read the whole documentation... For fun. If I'm in a hurry, definitely skim to the right bit.

  • Samuel Boczek
    Samuel BoczekApr 18, 2024

    If you experience imposter syndrome, learn this: everyone is winging it 😂.

    After working for 6 years on a single framework I can tell you that it still feels like I know nothing about it, neither do I even try anymore, you've got Google, you've got documentation (albeit bad at times), don't fear telling your colleagues that you don't know - do tell them that you are going to find out.

  • Ebere Richard Emelike
    Ebere Richard EmelikeApr 18, 2024

    Thank you for sharing

  • Dominic Magnifico
    Dominic MagnificoApr 18, 2024

    This is all exceptional insight 🔥🔥🔥🔥

  • William Onyejiaka
    William OnyejiakaApr 18, 2024

    Wonderful blog

  • Emma Megan
    Emma MeganApr 19, 2024

    As a mid-level developer myself, I found these 12 tips incredibly valuable. It's always refreshing to hear advice from someone who's been through the trenches and knows what they're talking about. I especially appreciated tips 5 and 9 – they were exactly what I needed to hear right now. Keep up the great work, and please keep sharing your knowledge with us!

  • Kuda M'ndau
    Kuda M'ndauApr 19, 2024

    Hi Abbey. Thanks for sharing your advice and experience. I am still new to tech as a whole. I am in my 30s and my first degree is in Biology 😅. I discovered I loved computers but never had the chance to learn them back in high school plus I used to feel like it was a very complex field and too complicated for me to learn.

    I am currently learning Full-Stack Web Development and am going to use your advice even as I am learning right now.

    Once again thanks for sharing.

  • Musab
    MusabApr 19, 2024

    Thanks for writing this post.

    You've given some great insight and actionable tips.

  • Florian
    FlorianApr 19, 2024

    Many thanks for the great tips. Especially tip seven, as a beginner, I only recently realized how much time it takes to understand other people's code when you've spent most of your time learning to write code from scratch.

  • FrankFCS
    FrankFCSApr 20, 2024

    First DON'T tell people you are "self-taught". Literally EVERY SENIOR ENGINEER by then is "self taught". IF you went to college - great - you learned HOW to learn (hopefully) - from now on its ALL up to YOU to realize YOU need to find the new things you need to learn and learn them and apply them.

    Second TRY HARD EVERY DAY to be humble! I can't over preach this. You will get better and pretty soon there is a WIERD tipping point where you have to put your ego in check with everyone else around you because now YOU are the senior. Getting a "big head" only hurts everyone. HUMBLE YOURSELF!

    Last, in general don't be afraid to MOVE ON! The ONLY way to bump your pay significantly is CHANGE JOBS! DON'T stay somewhere a decade or more unless you are POSITIVE you have a great deal going there. Those cases are RARE!

    You ALWAYS need to be challenged, improve yourself, be a GREAT example to the juniors and mid levels and people in general. NORMALLY.... to get all those things requires making a dramatic change.

    Good luck!

  • АнонимApr 20, 2024

    [hidden by post author]

  • Keiler Guardo Herrera
    Keiler Guardo HerreraApr 21, 2024

    Thanks!

  • vishal
    vishalApr 22, 2024

    Thank you for sharing

  • msc2020
    msc2020Apr 23, 2024

    Thanks for sharing! Very useful tips!

  • Pluglet
    PlugletApr 24, 2024

    Thanks Abbey! After a 'first career' in economics and international development I'm dragging myself up the coding mountain in my fifties. I've learned many of your tips the hard way :)

  • Moray Macdonald
    Moray MacdonaldApr 24, 2024

    Excellent article! This is fantastic advice for any junior programmer who wants to start thinking (and working) like an real engineer. I just wish I'd read this when I started out! I'm going to be bookmarking this for future mentees.

  • Kelvin Atawura
    Kelvin AtawuraMay 4, 2024

    I can see a lot of people saying they had imposter syndrome been self-taught. I was in the same boat for a few years.
    Around 2011/2012 I was in a dead-end job and came across Treehouse online. I bought a MacBook then to learn how to DJ, but thought I had a go at the whole programming thing and creating websites. I started learning on the evening after my day job. I thought I was clever so learning programming would be a walk in the park, I once coded a whole website not looking at the results, finished looking at the browser to check results and it was a black screen (css positioning was the issue), but couldn't figure out why for days. I was so disheartened and nearly didn't programme for weeks. But wasn't going to give up, got back into it and finally got a job.
    Over my 10 years, I met all sorts of programmers, mentored some grads and been mentored, and worked for top companies in the UK. I treated imposter syndrome like this, you feel like you are not too good and people are far ahead, right? So what if you spend some time learning to get to their level, at least you are trying and can't do more than trying can you? I started learning more outside of work on evenings and weekends. Also reading more, that I am not on about programming books but the concepts of programming like design principles and that.
    Keep working hard and it will all finally click, believe in the process. That is all you can do, protect your mental health.

  • Adikwu Stephen Friday
    Adikwu Stephen Friday Jul 26, 2024

    Thankks so much for sharing this, sincerely speaking am touched.

  • АнонимAug 28, 2024

    [hidden by post author]

  • Christian
    ChristianNov 3, 2024

    This is a great post!

Add comment