As you might have noticed, since September I didn’t post anything here. I would like to shortly summarize what happened during the last 2.5 months.
Since October I went to study the 3rd semester of International Management online. I also joined the basic course at ASBiRO, a university where 97% of the teachers are entrepreneurs. Right now I’m working on submitting the 1st chapter of my graduation thesis before the semester ends (the topic includes both Management and Artificial Intelligence).
I found ASBiRO a truly fantastic place and a life enhancing experience. I get to spend time with people who I mostly seen on book covers, on YouTube or only heard about the things they create.
At work I’ve received a new contract, valid till the end of 2020, but I would like to quickly start a career in software development and start getting experience in it instead. While at my job I am deeply involved with software development, developers and the IT industry, I don’t get to do much coding myself.
I don’t regret at all being at two universities at the same time and having a job at sales in IT, but the uncomfortable truth about the last 2.5 months is that I didn’t spend much time on developing my coding skills. It’s not going as nearly as smoothly as I would like it to. I hope to get fully back into it by 15th of January once I get done with all the work at my university and it would be fantastic to find a software development job till the end of May.
Probably my private life is what has improved the most. I hope that my yet to come „software development career” will be what will improve the most in the first half of 2020 🙂
Oh right, it would be great to lose some more weight too. The rule of 2000 calories, 120g proteins, 2 meals seems to be working so far.
Over the last weeks I’ve been focusing on C++ in order to broaden my job options and apply for a specific job offer.
After learning Java beforehand it is an interesting experience that allowed me to learn both about similarities and differences between the languages. I understood firsthand that many programming languages are closely related and that knowledge of one of them can be very beneficial when trying to learn the another. Even if I don’t end up getting a job related to C++, time spent on it was definitely worth it.
This marks my first efforts to find an actual programming job, since I sent my CV today applying for a job. Before that I only asked at my current job whether they are looking for a new developer/intern.
My goal stays the same: to find a job as a developer by the middle of February 2020.
After taking 50 area screenshots from some document I found the save dialog that shows up every time quite annoying.
I wanted a functionality where:
- By pressing a keyboard shortcut my mouse pointer turns into an area selection tool
- The selection of an area begins by mouse press, ends when I release the mouse buttons
- Screenshot is automatically saved to a file
- No confirmation windows, no need to press any additional buttons
This led me to spending some time with gnome-screenshot and some other tools.
I’ve looked in keyboard shortcuts and still couldn’t find a solution. I’ve tried to use Shutter: which every time required me to confirm the screenshot and was slow. Then I’ve looked into gnome-screenshot -h and found that it allows to specify a filename within the command. This allowed me to later find the two solutions below:
- Install and run CompizConfig Settings Manager (sudo apt-get install compizconfig-settings-manager)
- In commands window add as one of the command lines: gnome-screenshot –area –file=/home/tom/Pictures/$(date +%y-%m-%d-%H%M%S).jpg
- where „user” is your username. You can use any folder that you have a permission to save files. It will save each area screenshot and give it a filename that is the current date and time.
- Change to the Key Bindings tab, click on the button with the Disabled label that corresponds to your previously edited Command Line. Press the Grab key combination button and create a keyboard shortcut of your choice
- You should be able to take screenshots of an area by pressing the previously chosen keyboard shortcut, where screenshots are automatically saved (in the case of this example, in your Pictures folder).
- If the keyboard shortcut you choose doesn’t work, go to System Settings -> Keyboard -> Shortcuts and make sure that the keyboard shortcut isn’t already assigned to anything.
- Go to your /usr/bin/ folder and make sure you have the permissions to save files there (https://websiteforstudents.com/enable-open-as-administrator-on-ubuntu-16-04-17-10-18-04/)
- Create a new text file, copy the code below into it and save it at /usr/bin/ (the path to it should be /usr/bin/filename)
exec gnome-screenshot --area --file=/home/tom/Pictures/$(date +%y-%m-%d-%H%M%S).jpg
- Right click on the created file, choose properties->permissions and check „Allow executing file as program”
- Now go to System Settings -> Keyboard -> Shortcuts -> Custom Shortcuts, press the „+” button to add a new shortcut
- Name the new screenshot however you like. Make sure the command name is the same as the filename you’ve created in the previous step
- Click on the Disabled label to the right of your newly created shortcut and assign a keyboard shortcut to it
- Try it out 🙂
3 weeks passed since my last update post. Here is a small update
- I finished the Java for Complete Beginners. It was a nice introduction to Java.
- Udemy course: I went through the parts about control flow statements, Classes, Constructors, Inheritance and I am in the middle of the part about Compositions.
- There are some challenges to do after each section and the course is quite robust. I’ve checked more closely the next sections and so far there is no need to go to other resources. The challenges require me to test my knowledge and are well done.
I’ve prepared an outline of the things to do in the coming months based on Why learning to code is so damn hard article by Thinkful.
I wanted to put things into perspective and that’s where the above scheme came from. There will be some other resources used for sure, I only outlined the main ones I know I will use.
Oh, I actually don’t find testing, data modeling, architecture and deployment „less sexy”.
it’s only 10 days since the last post, you might think. I find the idea of updating my progress through the blog posts encouraging and a it might help me to self-reflect on what I’m doing. I’m my only coach right now. Let this blog be my second one 🙂 Oh, right! There are some friends who I talk with about becoming a developer and who work in the field. There is more than just the two of us!
- I have 1 video left on the Java for Complete Beginners course! This took some time, because I had to go through all the new concepts, especially the ones about the Data Structures. I can’t say that I’ve mastered everything. I can say that I know so much more compared to the time before the course.
- I didn’t make much progress to my surprise on the Udemy course. I have to work harder on it!
- I watched some videos about the Spring framework
- I checked job offers for what is required of me when I will be applying for jobs, I now have much better of an idea
- I watched a video outlining specifically what is required for getting that Java developer job. Basically knowledge of one programming language (Java) and and how to use it + all the bonuses that make me a better candidate like knowledge of Git, design patterns, relative databases, TDD, knowledge of HTTP protocols, REST services, clean code, solid, HTML, CSS
- I decided what my leading project will be to finish till the end of October, which will allow me to practice all the concepts required of me when I apply for jobs: songs database stored on the server with a website client. Like a smaller version of Spotify, where I will start with setting up a server, database and making it possible for a client to manipulate that database. Then I can try to add functionality like storing music files and playing them.
Here is a quick update on my progress with learning Java.
- I have 5 videos left out of about 70 (88% complete) on Java for complete beginners course on the caveofprogramming. I’m going through it thoroughly, typing code myself, testing things out myself too. Right now I’m about to finish the part about data structures which I have to say I enjoy a lot. I get to learn a lot of relevant, new things every day.
- I’m also doing Java Programming Masterclass for Software Developers (56/402). While tutorials on caveofprogramming are already quite old, this course is newly made. What I absolutely love about it, is that like 80 – 90% of time I spent so far on all the different coding challenges instead of watching the videos.
- my plan is to try to finish above mentioned courses by the end of July and then go on onto making my own projects.
- to further better my skills I will get some experiences programmer/coach to look into my code and give me some tips, correct my ways of doing things each week.
- I would like to have some projects done by the end of October and then start applying for my first programming jobs.
- I want to find a job by the middle of February 2020.
I’m literally counting days everyday by the time I have to get done some projects to show on my resume and till the time I have to find a job. This is serious 🙂 You can find updates on what I’ve done on my github page.
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.
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.
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.
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.
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!