Hello World!

100 days of code

I’ve been doing #100DaysOfCode and managed to reach day 50. Noting down progress every day and sharing it on social media is very helpful while learning a new skill. I reached only the day 50, since I didn’t write the days that I literally did nothing. You can find my #100DaysOfCode notes here.

HTML, CSS, JavaScript, React and… Java

I managed to finish about 200 out of 307 lesson on Udemy course: The Complete Web Developer in 2019: Zero to Mastery by following the lectures and doing the challenges. When I reached the lessons about React, it finally came to me that I don’t like Front End Development enough to make it a center of my future career. Having to deal with arranging graphics on the website and some other more design related things were just making me feel miserable. That was one of the reasons I didn’t spend as much time on learning as I would’ve liked to.

Coffee time

After some consideration, consulting the internet, few of my friends, doing research on the job market and bringing up my past experiences during the university, I came to the decision. I will learn something that my data and excel spreadsheets loving brain can grasp easier. I was considering C# and Java, in the end making a decision to go for Java. C# is still bound to Windows OS, which I rarely use.

New Goal

My new goal is to get a job as a Java Developer by the end of this year. I will use all the means I have to reach that goal, with simple self-learning at the base of it. I’m even more determined than before. Since the time I first wrote on this blog I came to love to travel and I need to find a new job to be able to do more of it!

A great way to feel more inclined to learn programming is sharing your progress within a community.
 projects are meant exactly for that.
Every day for 100/301 days tweet your progress publicly. Just seeing how people like, share, comment your posts every day will help to get you moving forward.

Check their respective websites: https://www.100daysofcode.com/ and https://301daysofcode.com/

The short and sweet answer is: whenever, wherever, however you can.

SoloLearn

What I mean is that you can use the commute time to your work by coding on your phone or learning with applications like Enki or SoloLearn. It’s a very good learning experience!

When you are at home and have 10 minutes of free time – use it! Do that next exercise on FreeCodeCamp or change one line in your current project. Reread and better understand the code of some project one more time.

What you will find is that your attitude matters a lot when trying to attain a new skill. Don’t hesitate, don’t think too much. Just use every opportunity possible to move forward. Once you don’t hesitate to use a small window while riding a bus to learn more, you won’t hesitate to spend 3 hours on the weekend too! Stop doing some progress. Start doing as much progress as your current life situation allows you to. Not only you will learn, but you will be energized, positive and look forward to doing more each day.

Thoughts -> Words -> Actions -> Habits -> Character -> Purpose

Thoughts turn into words, words turn into actions, actions turn into habits…

When you decide to sit idly when you could be learning, you lose much more than some time spent on learning. You consciously decide that it’s not that important and you are fine as you are. You resign, when you don’t need to and tell yourself that your goals aren’t that important. When you decide to use that moment instead and put more effort, it builds up. You become serious about it and the results are sure to come.

Happy results in the new, 2019 year!

I had some trouble with understanding how the cubic-bezier function works while going through the tutorials on https://freecodecamp.org. My answer is based on the previous answer by eirenaois on StackOverflow.

1. Bezier curve is based on four points: P0, P1, P2, and P3. P0 is set by default to (0, 0) and P3 is set by default to (1, 1). These are the beginning and the ending of the curve and you can’t change them.
2. The curve will stretch differently depending on what coordinates you give for points P1 and P2.

In the example above P1 is set to (0.1, 0.1) and P2 is set to (1, 0). The speed of the animation depends on how much does the state change per given amount of time. In this example, the animation gets faster with time. For the first half of the time used for the animation, it will cover about 15% of the distance (when Time = 0.5, State ~ 0.15). It will cover the remaining 85% of the distance in the second half.

Please check the example in jsfiddle to see how the animation works in practice: cubic-bezier ball animation

HTML:

<div class=”ball”></div>

CSS:

  .ball{
background: red;
border-radius: 50%;
position: fixed;
width: 50px;
height: 50px;
top: 50%;
animation-name: bounce;
animation-duration: 4s;
animation-iteration-count: infinite;
animation-timing-function: cubic-bezier(.10, .10, 1, 0);
}

@keyframes bounce {
0% {
left: 0%;
}
100% {
left: 100%;
}
}

In the example, the ball moves from the left edge of the screen to the right edge over the course of 4 seconds. Keyframes are there to set where the animation should begin and end, animation-timing-function: cubic-bezier() to set the speed of the animation at different points in time.

You can find the CSS cubic-bezier Builder here.

Hi,
just a quick update of what’s happening in my life!

I’m quite busy both with work, university and recently joined language lessons after a trip to Japan.
Does any of the above have something to do with web development? In fact, it does.

Going a year back in time I did nothing of the above (no job, no university, no language lessons, not even a trip which I wanted to do for a few years already). I hope that one of the successes in the next year will be starting a job as a web developer. I find myself doing more and more things of interest to me and I hope that posts that I will write in the next year will be of technical nature too, around the theme of this blog.

My current job in sales in an IT startup, where I work directly with developers (they sit just next to me), strongly boosted my interest in programming and gives me a real taste of what it is like. To be honest I wanted to work at least some time in sales before getting a job as a developer and that’s what I’m doing. Even better, working in sales in a software company! I strongly believe that developing communication (and sales) skills now, will be crucial for my life in the future and it greatly boosts my confidence over time. Hopefully, it will help me to get into a good company later on, but on a different position.

Till the next year!

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.