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/
just a quick update of what’s happening in my life!
I’m quite busy both with work, university and recently joined one on one 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, living with family – I know don’t live at my family’s place, 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. And most of all, improve as a person.
Till the next year!
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.