The topic for this months T-SQL Tuesday #105 (hosted by Malathi Mahadevan (Blog/Twitter) is:
“…pick one thing you want to learn that is not SQL Server”
Let me tell you about my non SQL Server learning goals!
The Penguin And The Python
I have been in my profession since 2002 with my first real job out of college. Since then I have learned many things which have helped me be successful in my work. When you are first starting out in your career it is good to have a wide spectrum of things you can do or learn in short order. That’s what higher education is supposed to prepare you to do.
However, as you progress you find that you need to eventually specialize to increase your earnings potential. It is no secret that to make a lot of money in software engineering you need to change jobs frequently. You also need to own your self improvement i.e. instead of waiting for your employer to cave in and invest in some training you need to learn on your own. The alternative is mediocrity at best and unemployment at worst.
The biggest threat to technology workers is becoming a dinosaur
Technology moves fast. We need to be equipped to keep making progress and not stagnate. Therefore there is a need to learn new things that you think will help your prospects. For me I choose Linux and Python.
Learning Linux
It has been years since I seriously used a Unix type system. Right now I am playing around with a couple of distros to decide which I like. I created some VMs using Virtual Box and loaded Linux onto them.
I am going back and forth between Ubuntu and Linux Mint to see which I would rather focus on. It is a lot of fun especially when I remember what I used to know.
Both are debian based operating systems that are geared to beginners. Likewise both are friendly and easy to use. It also doesn’t hurt that SQL Server can now run on Linux.
Ubuntu offers a simple and easy way to dip your toes into the Linux pool. It will keep you warm and safe until you are ready to move onto more involved distros like Gentoo or Arch Linux.
Ubuntu uses the Unity desktop interface. That is nice if you come from a Mac background and want it to look similar to OSX. This is a very easy GUI to navigate and familiarize yourself with Linux.
Linux Mint is also a good distro to get started on. It will hold your hand until you can cross the street yourself. I love the Cinnamon desktop because it is so clean, minimal, and beautiful. It is also highly customizable so you can tweak a lot about it.
If you come from a Windows background, like many of us do, you will find Linux Mint to feel somewhat familiar. Linux Mint is a fork of Ubuntu so it will share some similarities but differ with each release.
Proficiency in Python
Python has crept up from the eclectic languages like Perl to more widely used than C#. Many schools teach programming in Python to students. As I age I need to keep my skills fresh. Python is a great way to to utilize a scripting language as well as object oriented programming. It is also very good with big data.
Python understands that we write code for the human and not the machine. The Zen of Python lists the key principles of the programming language. To quote a few:
- Beautiful is better than ugly
- Explicit is better than implicit
- Simple is better than complex
- Complex is better than complicated
- Readability counts
Why Linux and Python?
So why learn Linux and Python? I think one reason is the recent moves by SQL Server to run on Linux and in 2017 integrates with Python. Although it is much improved, the biggest security hole and worst part of SQL Server was that you had to run it on Windows. Now you don’t have to.
With the acquisition of Red Hat by IBM I think this will be a boon for the open source Linux community. The rising popularity of Python is an incentive to learn it as well.
How Do I Learn Anything?
I have a few things to get me started. Pluralsight has some courses on both topics. There is an abundant amount of knowledge on the web if you are willing to put in the work. I’m working through Linux Journey. Additionally I am spending some time on Learning Python.
However, there is a limit to how well you can learn something by watching a video. I know it is easy, convenient, and fun to watch videos but you aren’t really going to achieve any mastery without doing it the right way. You need set up a lab and start playing around with it. Hands on experience is the best and many people are tactile learners.
I know a lot of the younger people will give me flack but you need to buy and read actual books and work your way through them. There is no substitute to this kind of learning. You can no more easily learn how to become a lawyer from YouTube than you can a software engineer by Pluralsight. It’s a great thing that is high quality but the medium isn’t conducive to learning as you might think. I look at them as supplementary to book and usage learning.
Thanks for reading!
If you liked this post then you might also like: T-SQL Tuesday #107 – My Death March Project