$ cd /home/Lu/

Keep-learning Lu

02 May 2020

Drop your Mac, drop your Windows, use Linux for one year

Back to the spring of 2019, 1 year before, I was desperately trying to find a three-month internship in France or any other Europeans countries. It wasn't easy, yet not that difficult either. The fact is that I had spent 3 years in HDU (Hangzhou Dianzi University) learning electronic hardware stuff, suddenly I'm in an engineering school learning AI something in France. It is a quite giant change for me. The turning point, I have to say, it was the call from my current boss.

I explained the situation in my first post:

The second one is Nexedi, which is the current one. In fact, they had turned me off at the first time by a long and detailed mail. I was upset and impressed when I saw the mail. Few days later, nevertheless, the CEO of the company, Jean-paul SMETS made a call to me. During the phone call, he did say something. He strongly insisted me: “Drop your Mac, drop your Windows, use Linux for one year! “. He also told me that he had started using Linux when he was 25 (or around…I couldn't remember…), and after one year of Linux using, he had made a giant improvement of programming. Besides, he recommanded me to buy a server on kimsufi (it's only cost 3.99euro/month!!). Then it is happening, the website.

Now it's one year after, how amazing. Reviewing my past year, I would say, I'm not that professional but, man, I've really improved a lot in whether Linux or programming from a totally newbie to a kind of web developer. I still recalled that when I just started my internship in Nexedi, there was another mean intern describe me as “a men under the waterfall”. Because I had so much confusion everywhere. Speaking of which, I read a touching story before, called A STORY OF BECOMING A WEB DEVELOPER. Reading the beginning of the story, I even thought it was me who wrote this:

Silvestar never coded in his life. He thought he would work as an IT engineer. But the situation at the market made him apply to a web developer job ad. Future boss provided an opportunity for him to learn about web development. If Silvestar succeeds, he could work in this company. He was not the only candidate, so he needed to work extra hard to prove his worth.

Though I'm not YET a solid and confident web developer, I'm truly always on the way learning and improving.

1. LinuxOS Usages

It's obvious that I'm much more familiar with the Linux. In a 100% (literally) open source / free software company, we are acquired using LinuxOS PC, in our case, it's Chromebook. Meanwhile, I use SlapOS, webrunner and ERP5 instance to operating my daily work. My personal laptop is HP omen installed in Ubuntu. I deployed a Mac-ish theme.

When LinuxOS came to my daily life, I have to face every challenge of this unfamiliar operating system. Beginning at reinstalling the Ubuntu OS, I consistently meet different kind of errors: compatibility with GPU, input way, etc. Then you know the story: Stackoverflow, Google all the time. Honestly speaking, I didn't know what i was doing when I copy-pasted the commands into the terminal. Time after time, I kinda get it little by little. This IS the truth: although you can only use cd , ls in Linux, it's fine, time by time, you will be better and better, the thing is that you have to try and try.

Webrunner

This is my webrunner in Nexedi. I have several webrunners for different projects. You can tell from the screenshot, it is a Linux terminal. I do a lot of work job in this, like git commands, slapos commands and basic Linux commands. I believe my other colleagues can do much more things in this magical terminal.

As for Chromebook, I use it in developer mode like below:

Terminal on Chromebook

I can use almost all the commands here, like burning operating system into flash memory disk. The kernel of Chromebook is unix-based.

And I've also got a task to install OS in a physical server last summer during my internship. I made a mistake on forgetting the root password. (because the keyboard was French layout, I became totally confused.) There were a lot of rescue method I tried, that was the first time I understand what is exactly taught in my Operating System class.

2. Git

Here is my activities in Nexedi git repository:

Activities in Nexedi git repository

(From September to the beginning of November & the second half of January till the first week of March, I was studying in the school)

Actually, I had no idea about git or any other SVN tools that time. It's a true story: when I applied for an internship to Decathlon last year, they asked me that do I know some SVN tools, I didn't even know what is a version-control tool. Then I started to build this website, because of which, I began to use the most simple git commands to backup my website: git add , git commit and git push. Did you see? It's like my first time using Linux from cd and ls.

In order to teamwork, I became familiar with git rebase; because I can also make something wrong, I use git reset more and more time. During git rebase, I can easily get conflicts, I can use vim then.

Vim editor in Webrunner

Speak of which, here is a best ever tutorial of Learning Git Branching. It's graphic, dynamic and easy to learn.

3. Programming languages

In Nexedi, we use Python for most occasions. While building web pages, I have to learn more about Javascript.

This work chance and the company have motivated me to learn through all the fundamental courses:

Certificate on Sololearn

Based on a good sense of basic Python and Javascript, it becomes easier for me to learn other frameworks like Django, Vue.js, etc..

4. Some frameworks / Libraries

Honestly, I can't really tell the differences between framework and library.

Until now, I can use Material Design, Bootstrap and other CSS frameworks proficiently, I can also build a Django blog and a Vue-based web page.

There is a Material Design Website Repository, the bundle web is unavailable anymore (because I didn't pay the google cloud something). It was supposed to be a team project with my other 2 teammates, because of something as-we-all-know, I finally did it by my own. It was cool, I got the chance to practice my skills under pressure.

As I mentioned that I am in AI major, I have to use some AI-related libraries like torch. I'm capable of doing something artificial intelligent.

You know what's the most important thing? It's that I'm not afraid of any other frameworks or libraries.

5. Web deployment

I use Apache at my side. That's the reason why you can read my blog.

I also deployed my other web pages:

I also got my own email address of my domain: lu.xu@lynnislu.com

There are surly many other things to say in this topic. Beginning at a dummy deployment, now I understand the working principle of Apache, like I wrote in my post: Apache2 Configuration on Server (Debian 9).

6. Other skills

This is hard to explain.

I have the capability to write test suite in Python and Selenium as well as some simple pieces of source code. As I said in my Smart Assistant Summary, I managed from front-end to back-end, from functional tests to security. I'd say my boss was so kind to give me this task at my very beginning programming life. It involved everything.

Oh and troubleshooting, it became one of my abilities too.

Last but not least

Still got something to say: thinking through my past year, I can't be more appreciated anymore to my boss, the CEO of Nexedi. Without his Linux advice and the working opportunity in Nexedi, I can't achieve my progress here. Back to one year ago, I was such a newbie to everything. Can you imagine that it was my first time that I had used Python in the September of 2018? And I had really knew some hardware stuff. There is only one year I made the progress. I admitted that it's still nothing professional, but you can be awared of your improvements day by day. “Drop your Mac, drop your Windows, use Linux for one year! “ this magical sentence works for my boss, for me, as well as for you.

comments powered by Disqus