Week#1 - Git is good
Tags: beginners, java
Published: 2019-09-23 18:52:54

It's been a week since I wrote [my first blog](https://dev.to/ddbull/start-of-my-journey-to-becoming-software-engineer-week-0-48me) here and now it's time to report what's been done in last week and prepare for next one. So let's start:

###To-Do 17-23 September (week #1)
`NOT done` 1) Daily physical exercise

Exercised only for 4 out 7 days. 

`done` 2) Solve 1 problem each day on leetcode 

![leetcode progress after week #1](https://thepracticaldev.s3.amazonaws.com/i/xu05hejvx31pj1ufgpoj.png)

Solved 11 problems this week. I participated in my first contest this week, only managed to solve 2 problems on time and later after the contest I solved one more. Contest was quite fun, I remembered good old days from high school - I've found that I still enjoy solving problems under limited time. 
I also find leetcode to be very useful when I am feeling asleep, tired, lazy to start learning - I just solve one easy problem and then my brain starts to turn on:)

`done` 3) Complete week 1 - course #1 Programming Foundations with JavaScript, HTML and CSS
`done` 4) Complete week 1 - course #2 Java Programming: Solving Problems with Software**

This courses require BlueJ IDEA to complete assignments. I've had trouble installing it, since the coursera/duke university version of BlueJ was not supporting java-11-oracle. Spent 2-3 hours trying to figure it out and ended up importing required libraries to my favorite IntelliJ IDEA. I am very proud of myself that I managed to do so without googling. Felt like a top-ass DevOps :)

`done` 5) Complete CoffeeMachine project on JetBrains Academy**
`NOT done` 6) Complete one more easy project on JetBrains Academy**

Current JetBrains Academy progress:
![JetBrains Academy week#2 progress](https://thepracticaldev.s3.amazonaws.com/i/fev2up5y6qlep4nyjkyn.png)

Unfortunately, didn't manage to complete Flashcards(easy) project this week.

###Thoughts/Other
Way too much social activities that I couldn't decline, fortunately upcoming week looks less busy. 
I also spent ~20 hours researching graduate/secondary bachelor in CS programs in the USA/Canada. My end goal is to legally immigrate to USA/Canada. Currently I see 2 pathways to achieve it: 
1) Junior Developer in Kazakhstan -> Middle/Senior Developer in Russia/Ukraine or Belarus -> Middle/Senior Developer in USA/Canada. In meantime try to get online CS Masters degree from top USA university. 

The downside of this path is that Junior Developers in Kazakhstan only make $300-400 per month and I my salary would drop 3-4 times for 6-12 months compared to my current Chemical Engineer job.
2) Getting CS degree in the USA/Canada -> internships -> work permit. This path looks to be shorter than previous one and with better benefits in long-term(MSc in CS).

The biggest downside of this path is preparation for GRE and taking huge international student loan. I may need to commit my time for preparation to GRE instead of focusing on learning computer science.  

**Git**

Biggest progress this week was learning some Git and practicing with Git in command-line, GUI and VCS in IDEA

**Pomodoro technique**

I am using pomodoro technique to help me focus. It is also really good for cutting all bullshit. You can't fool yourself with pomodoro. Without it you may think that you've done a lot if you spend 10-12 hours in front of your laptop, but the focus time could be only 1-2 hours. 

![Pomodoro stats for week #1](https://thepracticaldev.s3.amazonaws.com/i/32kwp7fb3sdfcdgrvi4t.png)

Pomodoro stats are showing that I am not effective with my time. 
However, I am not sure about 25 minutes focus+5 min break approach. When I am focused on solving some problem or trying to catch bug - 5 min breaks take me out of "flow" and sometimes it's hard to get back and catch the wave.


##Goals

**Long-term:** Legal immigration to USA/Canada as a software engineer
**Mid-term:** Get Oracle Java Programmer SE I certification - **by 1st March 2020**
**Short-term:** Complete Specialization "Java Programming and Software Engineering Fundamentals" by Duke University on Coursera - 5 courses in total, *I currently received financial aid for the first 2 courses*

###To-Do 24-30 September (week #2)

**1) Daily physical exercise**
**2) Solve 1 problem each day on leetcode**
**3) Complete week 2 - course #1 Programming Foundations with JavaScript, HTML and CSS**
**4) Complete week 3 - course #1 Programming Foundations with JavaScript, HTML and CSS**
**5) Complete week 4 - course #1 Programming Foundations with JavaScript, HTML and CSS**
**6) Complete week 2 - course #2 Java Programming: Solving Problems with Software**
**7) Complete Flashcards project on JetBrains Academy**
**8) Go to foreign universities fair, 25th September**
**9) Average 8 pomodoros for 6 days**

In my last post I've got <500 views, huge success! What do you think about my study plan? Should I change it? Maybe I should add studying some core CS concepts, not just java? Or less courses and more practice? I would love to hear any feedback! Thank you!