Are you a Beginner, Intermediate or Expert Programmer?
Anita Olsen

Anita Olsen @anitaolsen

About: Greetings! I am a retired hard of hearing hobbyist coder 😊 I am into learning new things, finance, reading, writing and playing video games.

Location:
Norway
Joined:
Oct 27, 2023

Are you a Beginner, Intermediate or Expert Programmer?

Publish Date: Jul 2 '24
41 35

That is a good question is it not? That is something I have been struggling to figure out.

I have been wondering for a while if I am still a beginner or at least moving towards being intermediate? I am pretty sure I am not an expert as many things are still very difficult for me (if not too difficult?!) and I feel at times like I know nothing at all 😅

Are you a beginner, intermediate or expert programmer? And how do you know that?

Comments 35 total

  • Anmol Baranwal
    Anmol BaranwalJul 2, 2024

    If a programmer knows which category they lies in, I can bet they are not real programmers 😆

    Heck, I don't even know which category I'm in :)

    • Anita Olsen
      Anita OlsenJul 2, 2024

      You have a point there!

      Hahah xD

    • Paulo Henrique
      Paulo HenriqueJul 2, 2024

      Ditto, 20 years of profession, every day I discover something new

      • Anita Olsen
        Anita OlsenJul 2, 2024

        Always learning! ✨

      • Jayant Bhawal
        Jayant BhawalJul 3, 2024

        Same (not in yoe though, haha)
        I feel tech changes too fast to not learn something everyday, and lately it feels like it's changing ever faster!

    • Hana Manzella
      Hana ManzellaJul 3, 2024

      congrats

    • Martin Baun
      Martin BaunJul 4, 2024

      While I've been practicing for a hot* minute now, I'm still learnin' :)

  • Ricardo Moraes
    Ricardo MoraesJul 2, 2024

    I'm a beginner, without solid experiences yet, but I have been studying everyday to improve my skills to get an opportunity as a professional developer!!!

    • Anita Olsen
      Anita OlsenJul 2, 2024

      Alright! Keep it up, you can do it! ✨

      Welcome to the DEV community by the way!

  • Devarshi Shimpi
    Devarshi ShimpiJul 2, 2024

    There's always something new to learn everyday!

    If you are talking in terms of job roles? Probably seniority of the role depends, some are expert at what they do while some don't know what they are even talking about...

    But if seriously as a programmer regardless a person's employment? I am sure someone might be expert in let's say 2-3 different tech stack, but not like all the programming languages that exist lol. Even in the programming languages they are the best at, eg. TypeScript. There's always new updates incoming! They might be expert today, probably not after the new version rolls out with some major change...

    • Anita Olsen
      Anita OlsenJul 2, 2024

      😃💡✨

      I was not talking in the terms of job roles no, just generally. Regardless of a person's employment, yes.

      Aha. Ah, yes the updates. Well, I can only speak for myself, been learning both Python 2 and Python 3, I manage very well to program things in both versions but then, their changes were rather small 😁

      Thank you SO much for you comment, I appreciate it! 🙏

  • Ezpie
    EzpieJul 2, 2024

    Well we aren't the kind of people who know what tier we live in, but we sure know what level of toxicity we give in programming... I mean, ever said VsCode of vim devs? I know because I am a proud vim user who has no other option then to use vscode because the codebase is written in TS and TS is just another vscode extension... #RostMeReddit.

    Real talk, I would say that being in categories is the same thing as comparing JavaScript to rust, it just isn't fair, rust is such a fast and safe language whereas javascript is just a buggy, slow, and for god forbidden reason used everywhere because of Microsoft just created a vscode extension. So I would say that I am a beginner, but due to my takes on verity of topics in programming, I would say I am an intermediate? So yeah can't really put developers on a tier list.

  • Julian Gaston
    Julian GastonJul 2, 2024

    I have been working a couple years doing full stack web development in a production setting working on features/bugs, coordinating meetings between different teams etc... I would say I am intermediate at best. Probably not qualified to write this post haha!!!!

    I will try to answer this in a fair way.

    In 2020 I was definitely a beginner. I did not have a job yet and was going through tutorial "he11" on youtube. I did not understand programming fully, and had no idea what an API was.

    I think one of the biggest differences between beginner and intermediate is the amount of quality experience you have coding and understanding your tech stack END TO END. Within intermediate you should be able to understand business/ client/ design requirements and be able to translate or articulate these details into actionable items.

    In my opinion, being an expert as a programmer is having a full understanding of your code, how your code works, your frameworks that you are using and in addition, being able to deploy, debug, and design your architecture/infrastructure with keeping scalability and security in mind. I truly believe once your able to do this at a degree that is "production" quality, you could call yourself an expert in the specific tech stack you are working with.

    Their is a caveat. Being an expert in one tech stack I think automatically puts you at intermediate on any other tech stack even if you really havnt learned it yet. Understanding how to take a project and balance product requirements with time management and, generally, the entire business side to developing, can easily be transferable to any other tech stack for the most part.

    Just my take. Once your an expert in one tech stack and one business setting, I think this automatically puts you at intermediate for everything else. This is of course considering the business side to programming.

    If we are only talking about raw programming skills I think @devarshishimpi sums it up pretty good!!

  • Ben Link
    Ben LinkJul 2, 2024

    I try not to get caught in the comparison trap… mostly because I go from beginner to expert and back frequently… sometimes even on the same day!

  • Brandon - Michigan
    Brandon - MichiganJul 3, 2024

    I have no idea. But for some reason I feel like I'm always a beginner. I never feel like I know enough. And half of what someone tells me flies straight over my head most of the time lol. Then I have to go and look it up or research it. By the time I get it and learn it, they've moved on to something else, which again will fly over my head, and back at square one. So I'm going with a constant beginner.

  • podgicarter
    podgicarterJul 3, 2024

    I’m not only a beginner but I’ve surrendered a moved over to the business end I’m willing to delegate the development part to you experts but I’m here lol.

  • Mike Talbot ⭐
    Mike Talbot ⭐Jul 3, 2024

    I'm an expert, in that I've implemented and architected dozens of systems which have built successful businesses. Could you teach me something I don't know? Undoubtedly. Are there a billion things I don't know? Yes!

  • Ben Halpern
    Ben HalpernJul 3, 2024

    I would try and go out of my way to identify and act like an intermediate developer sooner than it feels comfortable.

    I think some people hold the "beginner" title longer than it is useful to them.

  • Hana Manzella
    Hana ManzellaJul 3, 2024

    just touching waters :D

  • Jason Zamora
    Jason ZamoraJul 3, 2024

    I've been trying to break into the industry for approaching 3yrs now. From what I gather:

    • Beginner: still learning language syntax, still developing grasp of basic concepts in programming, doesn't really know which direction to focus their efforts. Tries to learn everything easy, dodges the not-so-fun lessons.
    • Intermediate: Now that they know syntax and how to manipulate data. No longer afraid of learning new things. They know the comfort zone is death. Always has side projects. Has experience with more than one of anything....ie. frameworks, databases, etc.
    • Senior: They dont let coding define them. They have a tenuous grasp on advanced concepts and how to implement them. Knows when its appropriate to use custom or prefab solutions. Truly understands how a system is integrated.

    But what do I know? I haven't been able to land an entry level job yet. These are just what I've observed

    • Anita Olsen
      Anita OlsenJul 3, 2024

      Thank you so much. This is most helpful!

  • artur
    arturJul 3, 2024

    That's a good question and one many of us struggle with at different points in our programming journey.

    Identifying your skill level can be tricky because it varies across different aspects of programming. Here are some indicators that might help you assess where you stand:

    Beginner:
    You are comfortable with basic programming concepts like variables, loops, and conditionals.
    You rely heavily on tutorials and example code to build projects.
    Debugging can be a significant challenge, and you may not be familiar with many debugging tools or techniques.
    Writing clean, efficient code is still something you're learning.

    Intermediate:
    You can build more complex applications and have a solid understanding of data structures and algorithms.
    You are comfortable with debugging and can troubleshoot issues independently.
    You understand and use version control systems like Git.
    You can read and understand other people's code and contribute to open-source projects.
    You are familiar with some design patterns and best practices.

    Expert:
    You have a deep understanding of multiple programming languages and paradigms.
    You can design and architect large systems and applications.
    You are proficient in optimizing code for performance and scalability.
    You mentor others and contribute significantly to community knowledge.
    You stay updated with the latest trends and advancements in technology.
    To assess your level:

    Reflect on the complexity of the problems you can solve independently.
    Consider your ability to learn new technologies and apply them.
    Think about how often others come to you for help and how comfortable you feel providing it.
    Evaluate your contribution to projects, both personal and collaborative.
    Personally, I consider myself to be somewhere between intermediate and expert, im working in Whimsy Games company. I can handle complex projects and often help others with their code. However, I know there is always more to learn, and I continuously strive to improve my skills.

  • АнонимJul 3, 2024

    [hidden by post author]

  • saiyam katiyar
    saiyam katiyarJul 4, 2024

    Many programmers may not be fully aware of which category they fall into, and those who do often possess a high level of skill in various languages. I believe that all programmers are on the same level overall, with the main difference being their proficiency in different programming languages.

  • Ben Sinclair
    Ben SinclairJul 5, 2024

    Are you a Beginner, Intermediate or Expert Programmer?

    Yes.

  • Jenna
    JennaJul 8, 2024

    In professional environments, categorizing skill levels can be useful for understanding roles and responsibilities.
    However, I believe that programming proficiency is flexible and depends on what we're working on.
    I'm continually learning and improving, so I prefer not to categorize myself.
    As the saying goes, 'All I know is that I know nothing.'

    Those terms should also reflect our ongoing growth and adaptability.

    what are your thoughts?

  • Antonio | CEO at Litlyx.com
    Antonio | CEO at Litlyx.comJul 9, 2024

    I dont think programmers can be "tagged" with some labels.
    Programming, despite the people think is something "highly Mathematics" is really "Creative".
    Can you say that an Artist is better than another?
    Is subjective. Is Polyhedric.
    Antonio, CEO at Litlyx

    • Horace Nelson
      Horace NelsonJul 29, 2024

      Engineering is definitely more science than art. It may be subjective in that there is often more than one correct way to do everything—and wisdom is in knowing which one to use and when—but there are boundlessly more incorrect ways to do things. It's expressive, but science nonetheless, and in an enterprise environment there are even quantifiable metrics.

  • Otto Hirr
    Otto HirrJul 11, 2024

    Hummm...

    If you're a beginner and ask a bunches of "beginner" questions and exquisitely solve the core issue for the users - with ordinary, simple, "beginner" skill set - what are you?

    If you're an expert and don't ask a bunch of "beginner" questions because you "know" and fail to solve the core issue for the users - with fancy, high quality, exquisite coding skills - what are you?

    I heard a story that Edison wanted to hire a mathematician, gave him a light bulb and asked him to find the volume. The candidate measured, used "fancy" mathematics and came up with an answer after a long period of time. Presented to Edison which replied, let's see if you are correct, surprising the candidate. Edison filled a beaker, submerged the bulb, with the displacement being the volume. Candidate was close enough and was hired. (your mileage and credits may vary on this illusion - just based on recall)

    The issue is having a right solution to the RIGHT problem. Too many times I've seen a right solution to the wrong problem.

    Being an "expert" can breed haughtiness - simply stay humble, always curious, always helpful, always learning, always knowing someone will know less and someone will know more than you.

    .. Otto

  • Jacob Van Wagoner
    Jacob Van Wagoner Jul 23, 2024

    Beginner: makes mistakes at a basic level, does not know how to fix them. Has no idea how to put things together at a higher level than the immediate code. Completes work items with help.

    Intermediate: makes mistakes at a basic level, but is able to fix them. Is learning about higher order systems but makes significant mistakes in putting systems together and does not know how to fix them. Able to work independently and complete work items without help.

    Expert: able to fix own mistakes and the mistakes of others. Understands systems at a higher level. Able to shape what work items look like, make them worthwhile, and identify what items should go to beginners and intermediate programmers and help them become better programmers.

  • Ashlynn Antrobus
    Ashlynn AntrobusJul 25, 2024

    I fall at the advanced beginner level. I've been programming for about a year and a half and have a strong understanding of a single language (Python). Books aimed at intermediate Python are largely stuff I already know, but i also know my code isn't always the best, and someone more experienced could probably write it in a fraction of the time

  • Horace Nelson
    Horace NelsonJul 25, 2024

    This is a great question, but one that's going to be very subjective. Some here seem to think that there's no reliable way to judge this, but just because you can't see the patterns doesn't mean there are no patterns. I've been coding professionally for 26 years across several languages (including JavaScript before it was even called that). I'm an expert developer (my preferred word, which—no matter what anyone tells you—is entirely arbitrary and just a matter of preference). I'm at the VP/CTO level and have led large teams with leaders of leaders as my direct reports, and yet I'm also still a cutting edge, hands-on developer. In my personal model, developers "rise" through a progression in different skill sets. For instance, there's the "Language Mastery" skill set, or how much they understand the core skills within a specific language (the skills themselves are the same for all languages):

    1. Syntax and Grammar: Basic rules and structure of the language, as well as foundational programming concepts as implemented by the language (e.g., inheritance, abstraction, polymorphism, encapsulation).
    2. Idiomatic Coding: Writing code in a way that is natural and considered best practice within the language community, leveraging language-specific features and idioms.
    3. Patterns and Standards: Utilizing approaches deemed best practice by the language community, adhering to regulatory compliance, and being aware of relevant standards.
    4. Internals and Ecosystem (“Ins and Outs”): A deep understanding of applicable compilers, interpreters, engines, runtimes, debugging techniques, and the intent and configuration of supporting technologies like IDEs, bundling, unit testing, linting, and frameworks.

    And the levels of progression might be:

    1. novel familiarity: low proficiency (< 15%)
    2. actively learning: low-medium proficiency (15-50%),
    3. proficient: medium-to-high proficiency (50-75%),
    4. mastery: high proficiency (> 75%)

    I'm pulling those percentages out of thin air, but their exact values are not as important as the fact that the different levels exist.

    The progression here from intern to expert:

    Image description

    Remember, this is only addressing the "language mastery" skill set, and that there are other skill sets that a developer must be progressing through in tandem, like systems design, devops, documentation, delivery, technical leadership, etc.

    Here's a work-in-progress rubric for determining mastery level:

    Image description

  • Shannon Clifford
    Shannon CliffordAug 20, 2024

    I am a 49 year old Lady and for the last 3 years, I have been learning how to build websites, used most of the AI tools out there, Built my own GPT's "SEO & Website Structure" and "Web-Scraping-SC". I am here to learning from others about programming. 👋

  • Indio226
    Indio226Apr 3, 2025

    Im an expert at beginning.

Add comment