Coffee mug saying begin

DIY Coding Career Starting Point

Whether or not you have help along the way, if you don’t know where you’re starting from, the endpoint is a lot harder to find. Discovering your DIY coding career starting point isn’t all that difficult as long as you follow some important guidelines.

The importance of self-awareness in learning to code

You’ll read a lot about self-awareness on this site, and the topic of finding your starting point is a perfect example. Honesty, focus, and feedback from others are all key elements to becoming more self-aware.

How honesty works for self-awareness

Honesty is perhaps the most important part of developing better self-awareness. Many of us have a lot of trouble being honest about our skills, our abilities, and even our own drawbacks. It’s hard to see ourselves as less awesome than we think we might be. If we see this as a stepping stone to actually being more awesome, it can be easier to accept that we might know less than we originally thought.

It’s just as important, however, to not underestimate our skills and knowledge which can lead to a much slower learning timeline and in some cases severe imposter syndrome. Just remember, honesty goes both ways when you’re examining your skillset.

Focus on the right things for better self-awareness

Developing better focus skills can help to improve nearly every aspect of work and life. When you’re trying to get better at being self-aware, strong focus is crucial. It’s also very important to keep that focus on yourself, including your habits, your communication with others, and your soft skills, throughout your coding education and into your professional life.

Obviously, when you’re learning a new coding language and writing line after line…after line…of code, where the potential for small mistakes that can lead to large disasters is huge, focus is something we could all use more of. Just remember that focus is important to more than just your coding chops.

Why feedback from others matters

Feedback from the outside is often the only way we can clearly see where we are on a certain path. Objectivity is hard to come by, both from ourselves as well as from people who are close to us. Friends generally have a hard time being critical of friends, even when they’re asked to be honest. If you’re asking friends questions about your skills designed to help you figure out your DIY coding career starting point, make sure they know you want them to be as honest as possible.

Likewise, when you find yourself a mentor, and finding a mentor at some point can be one of the best decisions you can make, ensure the person you connect with is willing to tell you like it is. Constructive criticism is essential to a software developer’s learning path…both giving and receiving.

Self-awareness in your coding journey

It’s critical for your learning path to gauge what you actually understand at this point. If you’ve built a web page with HTML and CSS following a tutorial but you couldn’t replicate that process without following the tutorial again, you haven’t mastered that phase.

Balance is the key here. You want to stay with a subject or a specific skill long enough to digest it and understand it fairly well. However, there’s no need to memorize every HTML element and all of its attributes before moving on. That’s what Google is for. The balance you should strike is somewhere between a general introduction and complete mastery. Remember that you’ll have years to reach guru status and that starting to work as a competent developer does not require that status at all.

So, where are you starting and what are these phases?

In all honesty, these phases are completely made up. After working with hundreds of students on their coding education path as well as developers at work, this is what I’ve seen in terms of categorizing basic skill levels. This is also where all of that talk about self-awareness comes into play.

Test yourself. Take notes. Be critical, but not overly critical. Use the following to find out where you are and make the decision about where to go next.

These phases are mostly applicable to someone on the web developer path; however, for someone very early in their journey who isn’t sure where to go (web developer, data scientist, etc), these categories can still be very useful.

Phase 1: I’ve never coded before

Obviously… the easiest place to start, right? Maybe not. For me, as someone guiding a new developer through learning to code, this level can be very tricky. I’m looking as much to whether or not they are suited for the career of web developer as I am anything else.

The important things to pay attention to in this phase are how easily you can incorporate the rigorous schedule of software development into your personal life, and how much you look forward to getting back to your keyboard every day. Realize that you’ll be working on coding for hours each day, week after week, for months to come.

If that idea scares you or makes you think twice, that’s fine. Take note of that and come back to how you feel often throughout your journey. If those feelings don’t eventually move from fear to excitement and interest, you may want to rethink your idea of becoming a developer.

Where to go from here:
1. Start coding on sites like Codecademy and FreeCodeCamp.
2. Focus on basic HTML and CSS. This is a good place to start if you’ve never coded before. It will give you a good idea of whether or not you actually enjoy the process of writing code. You can specialize later.
3. Try to devote a couple of hours each day, as many days per week as you can, to learn to code. Taking a day off here and there is totally fine. Just try to be consistent about your study schedule, and don’t slack off. Give yourself 30 days on that schedule and see how you feel. If you’re still into it, check out the next phase and keep going!

Phase 2: I’ve written some code on tutorial sites like Codecademy and freeCodeCamp

If you’ve given coding a shot, and you’ve found that you’re even more interested than you were before starting, you may be bitten by the bug. Maybe you’ve even built a WordPress site following a tutorial or you’ve gone through a basic web development course on Udemy. Either way, if you know that coding feels good, and you’ve tried it for longer than a couple of weeks, that’s a good sign!

Just be aware that sites like Codecademy and tutorials on Udemy and other places can create a false sense of achievement. It doesn’t at all mean that you should discount what you’ve learned. It just means that you need to be very objective and self-aware about what you know. There can often be a good deal of hand-holding on these sites, which is necessary at the very beginning. Just know that things get much more difficult when you’re on your own.

This step is critical for new coders because it introduces them to the language and concepts that make up the world of web development. How long you stay in this stage is completely up to you. If you feel comfortable heading out on your own, loading up your code editor, and moving away from the helpful tips and hints that many of these sites and tutorials are built around, then move on. However, if you still feel a bit underwater with much of the terminology and concepts like basic HTML and CSS, keep working through the material on sites like Codecademy and freeCodeCamp until you can anticipate a lot of the terms and code that comes at you.

Where to go from here:
1. Try to replicate any of the small projects that you’ve worked through on any of the sites you’ve been frequenting. If you’ve been completing projects in the built-in editors on these sites, try to build something small either on your own machine or in a site like Codepen.
2. Install a code editor on your own machine and build a very basic HTML / CSS website from scratch. Code editors are a very personal choice. Do some research, and try a few before settling on one that you love. I’d recommend starting with Visual Studio Code.

Phase 3: I can build a basic web page from scratch (HTML and CSS) with tools on my own machine

This is usually the point where you know if this is going to be the path you’ll follow for any significant amount of time. If you’ve gotten here, you’ve already put in some work and some time with writing code. You’re also quite comfortable with working on your own machine now, rather than in editors on other learning websites. This is an important point.

You should understand what semantic HTML means and why it matters, and you should be able to easily look up any basic solutions to coding problems on sites like MDN, W3Schools, and Stack Overflow.

You should know how HTML and CSS are connected, both conceptually as well as in practice. It’s also a good point to know a bit about “how the internet works” and to be able to host a website somewhere so it’s publicly available.

Where to go from here:
1. JavaScript. If you go down the road of a web developer, you’ll be cultivating a life-long relationship with JavaScript. The faster you embrace it and get to know it well, the better off you’ll be.
2. Start planning your career moves. If you choose to move forward from this phase, it gets a lot more serious in terms of dedication and time. Planning how you’ll learn and when you’ll make significant changes, like the job hunt, will make life easier for you down the road.

Phase 4: I can build a website utilizing some basic JavaScript for functionality

If you’re confident in building a website with valid, semantic HTML and CSS, and you’re also able to incorporate basic JavaScript for functionality like form validation, sticky navigation headers, and image sliders, you’re at your first major milestone that can probably get you freelance work. For instance, there’s a decent amount of work on sites like Upwork for developers who can put together a good Bootstrap theme for a website.

You could also pair this skill set with WordPress knowledge and do some freelancing in that area. Just realize that you’ll be working with a little bit of PHP if you want to modify a template with any more than the very basic CSS style alterations.

This is also the phase where most people start to really think of coding as their career. You should be thinking about your professional web development portfolio, and what direction you might want to go professionally.

Where to go from here:
1. JavaScript again. Start to learn it a lot more deeply. Learn it for the programming language that it is. Learn to solve some very basic coding problems on sites like Codewars. Learn to target and manipulate elements from the DOM as well. That skill becomes very necessary in the next phase.
2. Start to learn about APIs and what they do.
3. Get connected to a local tech meetup, especially a JavaScript or Web Developer focused group.

Phase 5: I can build a basic API based web application from scratch

This is a very significant step. It can also feel like one of the “biggest” jumps in the process. You’re going from creating a relatively static product, a website with some basic functionality, to something that is intended to be extremely dynamic by nature. An API driven site or application is meant to be dynamic both in terms of the data that it presents as well as the interface it presents that data with.

This phase is a jump in skills and also a jump in how you think about coding and solving problems. It’s also a lot of fun once you get your head around it!

You should have a very good grasp of using JavaScript with the DOM at this point. You should also understand how objects and arrays can be nested and how they can be iterated through for use in your application’s interface. The data you get back from an API will very rarely be in “the same” structure as the one before it…whatever that might mean. Being able to examine and understand the data returned by an API feels sometimes as much like art as it does science.

Thinking about how an application solves a problem for a specific audience is crucial at this stage. Learn about creating user stories and designing interfaces that will work well for them.

Once you feel solid with this phase, you’re probably ready for entry-level front end web developer jobs.

Where to go from here:
1. A solid developer’s resume.
2. If you haven’t already, start a blog. Blog about interesting things you come across, cultural topics in the tech world, and explain what you found difficult and how you overcame the learning hurdles yourself.
3. Think about learning some Python to go with your JavaScript, especially if you loved the “data” aspect of this phase.
4. If you did love the “data” aspect of this phase, start to look into data analysis and data science. That might be the path for you.
5. Look into Node and possibly Flask or Django for your back-end framework for the next phase.
6. You should probably look into a mentor or some other figure who can help you either technically, professionally or both.

Phase 6: I can build a basic full-stack web application mostly from scratch

Well…congratulations! How’d ya do it? We all want to know!

This is the point where most boot camp programs these days say that you’re ready for entry-level web and software development jobs, and I would agree. If you have the technical knowledge and the hard skills to put together an application that solves a real problem or delivers a real service, then there are a lot of companies that would like to talk to you.

You should have a broad understanding of the software development landscape, including what front-end and back-end frameworks are in use and why. You should also have formed some opinions about them. Why would you use one over the other? Which is your favorite to use and why? Those can be important questions when you get into a job interview. Having a favorite shows that you think about coding when you’re building something. It demonstrates that your work environment is important to you, and it lets people know that you do more than simply follow tutorials and use whatever the instructor is using. Coding should be personal to you at this point.

You should also be able to solve some more complex problems with code, understand some of the more common algorithms in the field, and demonstrate with code some of the common data structures, like a linked list.

Here’s how to stand out from the crowd:
1. Be good at DevOps. Be able to deploy both the front and back ends of an application easily and know how they connect. Know how to use continuous integration and some basic testing.
2. Be good at design. If “artsy” isn’t your thing, don’t make that an excuse to design bad interfaces. Learning the basics of good UI / UX can go a long way. If you can present your work with a professional, well-styled front-end, you’ll make a bigger impression than if you show something that says, “Hey, I’m not a designer.”
3. Make your portfolio site awesome, and make sure it works. All of the applications you include should be up and running, and should work well. If you have a login screen or sign-up feature, make sure there’s an easy way for a hiring manager to get in and check things out. Don’t put up hurdles for them.
4. Network! Can’t say enough about this. Get out and meet people (as much as something like…oh I don’t know…a pandemic will allow).
5. Soft skills. Can’t say enough about this either. If you’re bad at this, practice. A lot. This will make or break an interview.

What to do with all this info

Once you’ve taken a long, critical look at your skills and abilities up to this point and determined where you are, you can look at the next phase in the process and ask yourself whether or not achieving that sounds like something you want in your life. If the next step seems daunting, boring, or unimportant for what you want to do with coding, you may already be exactly where you want to be.

If the next step is exactly what you’re looking for, go after it. If you don’t know how to get there, get in touch. We can probably help.