“Always” is a dangerous word in CS, do not you think?
For CVs, if I see an impossible/implausible/cooked scenario; Several different types of languages in a short and/or simple career, incompatible areas of expertise, more buzzwords than necessary, any mention of “fullstack development”, and such, that CV flies to the garbage bin, if I have time, in plane form, if not just as a basketball.
Most people forget that CVs read two times at minimum, three if you are lucky. HR (first reader) and upper manager (last reader) does not know anything about the actual content, not just for programming, any engineering position or even sales or accounting. It is possible to fool HR screening with buzzwords and garbage about PL-1 and JS development you did last year. Actual manager OTOH, would just hate you for wasting time, less if s/he can catch your BS in reading, more if it become obvious in the second interview.
Although I do not like this word, this is the place to use it: GitHub services are not “Enterprise” level. There is a gigantic git repositories collection against a huge user space. If you switch to a paid account, you can mark some of your repositories “private” and limit access to them for a subset of users exists in the system. There is no user level security, no network protection, no extra service continuity options and/or an actual SLA. You need to trust implicitly to your users, and you need to know some good prayers against network and system problems.
Edit in 2021 to this 2016 summary:
Github is developing and improving its service quality and tools on offer for a better environment. In the time between my original writing and this update there have been improvements and changes. Maybe not the most important but definitely most dramatic one of those is the acquisition of Github by Microsoft. Given the current stance of Microsoft, I personally view this development as a positive one. Also it seems that, most of improvements in the service occurred after this ownership change. All these being said, I still do not see Github services as enterprise level. So the the answer to the first question (that is about private repos…) stay the same. For any FOSS and similarly “need to be out there in the open” project however, Github became an excellent platform.
There are several candidates to “the biggest” lesson. As you are asking the one and only one, I would go with this:
Success in the corporate world has two faces, one is how much value you add to the organisation, and the other is how much successful you seem to other people in and out of the organisation. These two are usually not balanced, meaning that most of the time your image (lets call it face value) is either more or less successful than your added (or actual) value.
When your face value is higher than your actual value, it is easier to advance your position, increase your prestige, open some doors etc. It is also easy to make new enemies, attract more negative feedback from people. And due to increasing expectations, it is easy to fail.
When your actual value is is higher than your face value, it is easier to self motivate (the most important motivation type), to develop oneself without gathering so much attention, and usually people would not pressure you more than you can handle, maybe other than your immediate boss. But you would also frustrate, some people would not see you as “material” etc.
So, due to these characteristics, people tend to oscillate between these two situations. Now they are overvalued, then they are undervalued, and then, and then, it goes. It is important to remember, this situation is normal, both positions have positive and negative aspects, and should be acted upon accordingly. In fact most situations in life are in that way, with positive and negative aspects. Easiest time in your life is when you are in balance, not overvalued, nor undervalued. However it is also the most static time in your life…
Frankly Windows became increasingly unreliable in my experience in recent years. It is probably we just do not want to wait, biting our nails, to see if our code is still there after an unpredictable crash. Or again in my experience we might be hating to see a notebook fail to return to life from a suspended (or hibernated) session. Again the same suspense during reboot “O Lord, please my code would be there intact and error free…” Normally there are lots of very good and running exclusively on Windows (although this trend seems to be something of past) tools, which should be a positive motivator for using Windows but it is not good enough…
Linux is another and sadder story. I love Linux and all my servers are still Linux, not Solaris (do they still produce it?) not BSDi, nor freeBSD nor Open BSD. But on the desktop side, Linux is becoming suckier every passing day. Window managers became memory monsters, the usually default browser Firefox is dead (for me at the least, I use it only just to see if its interpretation of my pages is correct or not), Thunderbird was my choice of mail interface, while it is not as bad as Firefox, it is not going well either. So while Eclipse is running very good on Linux, I need a good desktop to carry out my daily life as well. Also, at least for my coding, everything I wrote and that works on Mac, works on Linux too…