I’ve recently stumbled upon a website that I would like to share with you.
I absolutely love such short and sweet introductions to any topic. This small website turns learning CSS selectors into a game. Check the image below.

CSS Diner

CSS Diner

You can learn in 30 – 60 minutes many interesting ways to select elements with CSS. I didn’t even know that many of those exist. Using CSS selectors you go through 32 levels, selecting items mentioned with CSS selectors. Each level introduces a new way to select with CSS. Enjoy!

Everyone is busy

We are busy people, at least most of us. If you are a teenager with a lot of discipline, time and clear goals – lucky you! Working full time, learning a language, learning programming proves to be challenging. Even more that I want to go to a graduate school from October. Studying in a field that I know nothing about. Why would I do all of that? Because I have a goal, a dream I want to realize. I won’t stop until I realize it. Life is fun. Life is more fun when you have dreams and you work to realize them. I try to focus my free time in my busy life around activities that move me towards to realizing mine.

Processes for busy people

No matter how busy you are, making progress comes down to one thing. What you do each day. If becoming a web developer takes 800 (quality) hours, then it can’t be done in a day, a week, or even a month. You have to put those hours daily for a long period of time. You need a process to move towards that goal. Put those quality 2 hours where you learn something new, that you will need for your future job. Do it 400 times and you should be good enough to land a job. The thing is, watching 800 hours of lecture won’t get you there. Doing 800 hours of challenging projects, where you constantly have to learn more, will.

How to become a web developer?

Plan + quality process * every day = reached goal.
That’s simple. Harder to do. Why? Because it’s uncomfortable. Because you have to do it every day. Because your ego is in the way and you want to have it easy. Making a nice website in 3 days won’t make you a professional. Make 200 of them and you will be close. That’s why it’s important to have a good plan, so you don’t make 100 websites when you want to be a gardener in the end. You need to know what you are doing. At least know what direction you are headed. No one will care at a job interview that you didn’t have time to learn the required skills, that you wanted to learn x other things. You are the only person responsible for where you are headed in your life. Others only see the results and judge you upon them. Sad, but true.

Recently I’ve been doing Harvard’s CS50. If you have never heard about it, check it out here. I decided after doing about 1/3 of The Web Developer Bootcamp that instead of going deep into web development I would also like to grasp something from ground up. At Harvard CS50 instead of web development they focus on teaching the strong base for programming, with a lot of practical exercises that you have to do on your own. Feels more challenging than The Web Developer Bootcamp and I think it might be better to do first unless you are in a rush to get a web developer job as fast as possible. I’m a curious kind of person and needs to know “why” of things or I might get unmotivated. That’s where Harvard CS50 comes.

Maybe you have heard some famous business people say that everyone should learn programming. While I don’t necessarily agree with that, I find that knowing how to program can make life much easier. Especially if you have to do anything with computers, business and alike.

What is programming?

Programming is writing instructions for a computer to follow, in a language it understands. You might have heard that programmers solve problems. I personally prefer to say that programmers automate what would otherwise need to be done manually. They save a lot of time, money and nerves by doing their job. Just imagine, could you ever write a blog as easily as this, if not thanks to the people who programmed WordPress and other blog platforms?

Take as an example doing calculations. If someone wouldn’t automate it and build a calculator, you would need to do all of the calculations by hand! Definitely takes more time. Also it’s easier to make mistakes when you do it manually.

How would I benefit from learning it?

Do you have 200 word documents and you want to change dates in each one and then print them out? You can do it with just a little of knowledge of how to program, without having to open each document.

Do you want to build a website by yourself from scratch? A few days of learning and you can surely do it.

Would you like to have a remotely controlled stopwatch? Yes, this also you can do without much knowledge.

You could then automate many things you do manually 🙂 You surely would be surprised how many things you do, could be done effortlessly once you know a bit of programming.

Where do I learn it?

This one is easy. There is a huge base of tutorials on the internet to learn basics of programming. And among them there are many good ones! You can’t go wrong, just google for it and have some fun programming.

I just recently visited two meetups. One related to JavaScript, other one to Java. Loved it!
Let me share with you at least 5 reasons why should you also go to the meetups related to programming.
I ordered them from most important for me at the moment.

1. New ideas

The first thing I liked about meetups is that I can get introduced to many new concepts that I might have not even heard about. Azure Web Service, what does Data Scientist do and what is machine learning, new version of Angular and etc. are a few examples. Sometimes I didn’t fully understand what’s going on. Nevertheless I felt satisfaction of learning during the meetups. It was  fascinating to hear from people from so many different backgrounds.

2. Travel

This one is important for me since I tend to take life too seriously. Rarely there are meetups in my city, so I have to travel to other places. Every time I go to a meetup not only I learn, but I also get to feel like a tourist, traveler. This means I not only get to learn about new concepts. I also get to reflect on them and on my career or life just after the meeting.

3. People

What surprised me is that rooms where meetups about programming happen are almost always full! It’s very motivating to see so many people interested in the same topic as you are. If you want to regain motivation for learning web development, joining a meetup is a good way to do so. You’ll feel that you are not alone and are a part of a much bigger community.

4. Networking

During a meeting there might be some breaks, but you won’t get many chances to speak to people. It’s common to see an after-party happening just after the last speech and the organizers might ask people to come 30 minutes earlier before the meetup begins so they can network. This is a great chance to get to know some other people from the community and perhaps learn something from them. It would be a good idea to hone your networking skills and even prepare an elevator pitch!

5. Job opportunities

Whether you are currently employed or not, it still holds true. If there are people, there are opportunities to network which is a shortcut to getting a better job. This is especially true for meetups where you can be sure, that people not interested in programming wouldn’t show up. As long as you are prepared for some networking and are willing to talk to people and mention that you are open to new positions, there is a big chance that you will find one.

 

Continuation from previous posts:
The Web Developer Bootcamp Part 1
The Web Developer Bootcamp Part 2

I’m currently at lecture 171 out of 360. That’s “only” 24 lectures in this week.
You can find this part’s projects here.

There were holidays in Poland this week. Free days instead of boosting my progress, seem to slow it down. I decided to put learning web development higher on my priorities, even at the cost of some of my social life and other things I would like to do. There is simply not enough time while working full time and trying to do few other things at the same time. One thing for sure, learning web development takes time!

All what I did this week was focused on DOM selection, manipulation and events. Another broad dimension of Web Development. This is a new topic for me, which is both fun and challenging.
DOM stands for Document Object Model. With JavaScript I can select html elements and manipulate them, add events to them.

I first started by playing with DOM through Google Chrome Dev Tools. Inspecting some random websites and trying to manipulate them, changing some parts of them. Like changing an image on Google Search Engine from the current one to a kitten photo, then counting a number of elements in a table from some website.

Project called ColorChange was an introduction to DOM events. Simple exercise, where first I had to select a button and add to it an event listener that upon click changes the color of a body element.

var changeColor = document.getElementById(“clickMe”);
var body = document.getElementsByTagName(“body”)[0];

changeColor.addEventListener(“click”, function(){
document.body.classList.toggle(“isGreen”);
});

.isGreen {
background-color: green;
}

Project ScoreKeeper was what I spend most of the time this week on. This project was a counter that could be used for volleyball, table tennis or many other sport disciplines. By using buttons you can either add points to player1 or player2. You can also set a maximum, winning score. Sounds simple, but this project was a good way to practice DOM manipulation. Had to make sure that everything works correctly.

The third project ListAndEvents was a short exercise of different possible events that exist besides click. Overall there are about 300 of them.

5 of the lectures that I went through were about an upcoming, a bit more sophisticated project called The Color Game. This project builds upon all that has been shown in the course so far.

Here I will keep some interesting ideas for the future.

  • record a live coding session on YouTube (e.g. doing exercises on freeCodeCamp)
  • create a tutorial on the blog
  • write a guest post
  • follow 10 other web development blogs and comment on them
  • do an interview with a web developer
  • do an interview with an owner of an IT company connected to web development
  • write a FAQ with questions that people starting into web development often have, like “when should I look for freelance projects?”
  • add my info in about
  • go to hackathon – possible job opportunities, a hackathon while on a trip abroad?
  • go to some Web dev related conferences and make a blog post about it
  • make a profile on upfront and other freelance jobs websites, look for projects to do
  • make a tutorial about some basics of web dev like HTML in Japanese, make a yt video!
  • post about https://www.thinkful.com/blog/why-learning-to-code-is-so-damn-hard/ from my perspective

Here is a continuation from The Web Developer Bootcamp Part 1.

At first I wanted to write how many hours I spend on web development every week. Then I thought about posting weekly updates. In the end I decided to write a few posts about the whole course experience.

I’m currently at lecture 147 out of 360.

I’ve done some TreeHouse course about front-end development in the past and I find this course better structured and the pace faster. The course begins with clearly laid out and explained syllabus, boldly exclaiming that there will be no PHP involved in this course 😉 I liked how the author compares HTML to the nouns, CSS to the adjectives and JavaScript to the verbs of the web development. In other words, HTML is there for the structure, CSS for the looks, JavaScript for any manipulation and interaction with the website.

What I found is that exercises are great here. At the beginning of the course it usually follows a pattern: introduction to a new concept, a task, a video solution. Later on there are many more code along tasks to do and some code snippets thrown at you to deduct what happens in them. You have to become a little more creative and do more than just follow the videos to learn the material and put some additional practice. I like to redo what the teacher does after the lecture is finished, referring to it only if I must. Sometimes I will add some changes of my own or make up an exercise for myself. The course asks you sometimes to research on your own. Makes a heavy use of Google Chrome’s Dev Tools and the teacher himself in the solutions shows you how you can use stackoverflow and Google to your advantage. This course is made in a way, as if the teacher wants to make sure you become a web developer someday. 

At some point, about lecture 75, I got stuck at Bootstrap going into procrastination mode. I found it very challenging for some reason at that point. Not that it necessarily is challenging, just my impression about it made me stuck for about 10 days without making any progress and not wanting to go back to the course materials.

What I’ve came to understand: it’s much easier to write something well from the beginning than have to fix it later.

It seems the course will take me more time than I would expect at first. Not that it’s bad. I know that I’m learning. You can find all that I’ve done so far on my GitHub repository,  folder called part 2. Covering HTML, CSS, Bootstrap and some basic JavaScript.

This will be a series about a very popular The Web Developer Bootcamp course on Udemy that I’m going through right now. This is a long course (360 parts, about 95% of them videos) covering basics of web development both front-end and back-end including the following:

  • HTML
  • CSS
  • Bootstrap
  • JavaScript
  • DOM
  • jQuery
  • NodeJS
  • Express
  • MongoDB
  • RESTful API

The course instructor is a person who normally teaches at bootcamps. The course is constantly maintained. By being maintained I mean that they even upload separate videos to YouTube where you can see the same things done with new technologies. E.g. there is a project using Bootstrap 3, current standard is Bootstrap 4. One of the Teaching Assistants makes a video about the changes from Bootstrap 3 to 4 according to the project from the course.

One of the reasons why I decided to stick with this course is how well balanced it is, rich with exercises and how good the teacher’s explanations are. I don’t believe that it’s “The only course you need to learn web development” like it says on the course’s page. Although, after going through one third of the course I can definitely say that it’s great for a start. Great for going from the point where I barely know anything to the point where I can seriously think about creating websites from scratch instead of using some WYSIWYG (What You See Is What You Get) editors.

I found another bootcamp-like course, The Odin Project, discouraging because it felt like jumping straight into a deep water without being prepared enough for that. That said, I think it’s great as a follow-up and I might as well go into it deeper after I’m done with The Web Developer Bootcamp. On the other hand I feel that I prefer learning with a human being talking to me, that having to go through written instructions on freeCodeCamp. What’s worth noting, there is also a good follow-up for the Udemy’s course by the same teacher called The Advanced Web Developer Bootcamp.

I watch videos online usually with the speed of x1.5 or x2 when possible, sometimes skipping through the video if the content is already understood by me. I use a laptop connected to a 23 inch monitor. I definitely recommend getting an additional screen for web development. It is so much more convenient! After trying Sublime Text 3Visual Studio Code and Atom, I decided to go with Atom. I saw it being used in my work and found the preview plugin very convenient. That means I can see how the website looks while staying in Atom. No need to open a browser and refresh a page. I use Ubuntu 16.04 for web development, having Windows 7 installed next to it.

You can see the projects I do following the course at my GitHub repository. GitHub is a web-based hosting for version control using git. What it means, is that I can upload and store my code online, update it, and even revert the changes I’ve made using GitHub. I used the GitHub section of The Odin Project course to learn how to use it.

In the next parts I’ll go into the course materials and hopefully finish it 🙂

Did you ever realize that it takes some courage to start writing a public blog? That it can be a great experience and a lot of fun? That you might feel you are terrible at writing? I sure didn’t until I started to write this first post. My name is Tom and I’m at the beginning of my journey into web development.

This is one of the many beginnings. I’ve tried many times to break into programming career with little success. I lacked motivation, consistency or maybe a blog? Whatever was the case, I didn’t manage to reach my goal. I believe this time is different, since both my circumstances and reasons for doing it are different. I hope that writing a blog will help me to reach my goal, which is to eventually land a job as a web developer.

Here I will document my thoughts, reflections and most important: my progress. I will document my firsthand experience using some often recommended courses: The Web Developer BootcampThe Odin Project, freeCodeCamp and doing my own projects. At the time of writing this post I’m already at 125 video out of 359(!) of The Web Developer Bootcamp and went through few modules of The Odin Project, including Git lessons. This means everything I make I will be able to share with you through GitHub.

My main inspiration for starting this blog is through hearing social figures like Gary Vaynerchuk, or John Sonmez from SimpleProgrammer recommend it over and over again. On top of that reading about success stories how becoming more visible on the web can greatly help with career (and possibly not only) were convincing enough. And hey, it’s fun writing on a blog about what I want and however I want! 🙂

You can find more about me here