Photo by Gia Oris on Unsplash

How to Start a Foundation in Web Development

Four simple tips to get some traction in Web Development

--

Nothing is impossible—at least in code

One of the best things about being new at anything is not knowing its limits. That is the exact reason why an expert’s skill might seem like magic at a subject you don’t have much knowledge in. Savor this awe, as it might dilute and transform once you begin to learn more about the subject. Think about the first time you experienced snow, sand, or flying. In each instance, when you first experienced it, the phenomena was filling your mind with sensations, ideas, and feelings.

Photo by Aaron Lee on Unsplash

As you become more familiar with the experience, you start to see its limitations, consequences, and lack of magic. To learn effectively, you have to willingly bring yourself back to the phase of awe. Like a sponge you must absorb as much as you can, accept that you don’t know everything about it, and openly welcome changes or ideas that might seem magical.

Photo by Meriç Dağlı on Unsplash

My advice when you’re transitioning from a phase of awe in web development to a phase where you’re starting to see its limits is to capture the awe. Record ideas of what you think can be achieved when learning something. Write down the magic you see. Make a list of things you want to be able to do (even if you don’t know how you will do them.)

One of the cornerstones of Computer Science is problem decomposition, where you take a big problem and break it down into smaller, manageable pieces.

After you’ve captured your goals in the web development subject, choose one that you’re going to use to begin your road into web development. For example, I’ll choose creating a website about me. We’re going to decompose this goal into smaller pieces that we can get at one at a time.

Google + Stack Overflow = Solutions

A question you might have is: how do I know what smaller pieces form up to achieve my goal? My answer is in the heading of this section. If your goal is too unique where nobody has thought of it before, leave it recorded somewhere and choose another, more popular goal that you still find magical. If you’re out of ideas already, just follow my example idea.

After doing some research, you can learn very complicated ways to make websites: CMS-driven websites, websites powered by javascript frameworks, serverless, etc. Depending on how much you want to challenge yourself, you can start mapping out what you need to do to follow any of the tutorials you may find. However, right now you’re just getting the lay of the land—you want to get an idea of different approaches to get your goal done. You might want to time-box this research since the internet is immense.

After doing some research, I realized my main goal is to see how a website is displayed in a browser, not to host it online. So I will change the goal to displaying a website about me on my browser. Changing your goal is perfectly okay.

After doing more research about this more narrow goal, I found smaller tasks that need to be done for me to achieve it:

  • get a code editor
  • create a new file
  • save it as the html extension
  • copy skeleton website code
  • alter the code to add my name to it

If I didn’t know how to display a page on my browser, asking me to do just that would be a little too much for me. However, through research I was able to break down the larger problem into smaller, manageable tasks that I do know how to do.

Now that I have a working site in my browser, I can learn more from it by tweaking it and modifying the code based on other goals I may have! Eventually, as I learned more I went on the make my current website.

Find a technology stack and see it through

It is easy to get lost in the pool of ideas that is the internet. It is easy to get to a challenging point, then quit to start something else. To really become productive and skilled in this are, one must know the ins and outs of at least one technology. I suggest picking one and stick to it until you’re very satisfied, and don’t get distracted from it based on what is popular at the moment.

I started learning in 2014 with PHP and MySQL. There were definitely more popular technologies then, but I found a good tutorial and plenty of documentation working with these backend technologies. I don’t use PHP anymore, but many of the concepts I learned from working in this stack apply to new technologies I’ve learned and prefer. Going in depth with a technology does not mean you have to stock to it for the rest of your career—it will instead let you see how it relates to other technologies and will teach you concepts you wouldn’t learn by scratching the surface of many technologies.

Find a technology that is popular enough that there is good documentation out there and stick to it. It is worth more your time to learn the depths of your chosen technology than it is to jump around between react and angular without getting in depth in either. If the technology is popular enough that you found it—the it must be useful and you should learn from it.

Go Out and Meet People!

One of the things I find the hardest when meeting new people is finding common topics to talk about—I admire those who can casually strike a conversation about anything at any moment’s notice. That is not me. If this is not you either, well it is fortunate that you have committed to learning a technology stack!

Although you’ll be able to learn a good amount from tutorials, blog posts, and lessons online, the internet is no comparison to the type of learning you experience with a mentor, peer, or mentee. If you happen to live near a big city, I suggest going to https://www.meetup.com/ to find meetings about your technology stack in your area. There are many communities for languages or technologies that are excited to introduce new people to what they’re into. One of the best communities I’ve seen out there is the Ruby community—they’re excited about teaching and creating projects together. You will find meetups that are organized for a deliverable, maybe something that will benefit the community, others that organize talks, and some that host spaces for people to code and work on their own projects.

If you don’t live near a big city, I would still suggest trying to find a community even if it is virtual. At the very minimum you want to find a place where you can learn, ask questions, and feel like you belong. If you’re able to find a mentor, great, you can stop reading now! (joking, but they will probably become a more effective source of guidance).

These are a few reflections on what was personally useful as I started my career in Software Engineering. Please leave feedback if you relate or found them helpful!

--

--