Which programming language should I learn? For non-IT professionals
Hello again.
Many times I face this question by non-IT professionals who want to learn programming for some particular task in their day-to-day job: What computer language should I learn to help me do X for my work?
Yet, before answering that question, let’s start with the foremost important question:
Should you learn programming?
My answer was, is and will always be “Yes, you should.” And that’s not because I am a programming enthusiast, neither because I am trying to sell you a programming course – which is actually a good idea- but for the following scientifically proven fact: “programming improves brain’s functions.” Learning to program is like any intellectual skill – playing chess or solving jigsaw puzzles- improves brain functions, boosts your self esteem, relieves daily stress and brings you to the moment.
Here are some studies and articles about this fact. one, two and three.
Another important reason to learn to program is the fact that it will save you a lot of time, money and frustration. And I would not be exaggerating if I say may be it is the skill that you need to take you to the next level/promotion in your career or business. You might be wondering (how the hell is that?)
Here's how:
Lets assume that part of your job needs a little computer application to save data and generate specific reports customized in a way only you (1 person / 1 job) will need. Something like if you need to collect data about certain type of customers or run a specific financial model that is not required by your management. Well, you have (3) options:
1- Ask your IT department to develop it for you (assuming they have the capability).
2- Outsource the development to third party (a freelancer or a development company).
3- Learn to program and develop it yourself.
The problem with solutions No (1) and (2) is that you have to convince your boss to agree, then (maybe) to pay for the development, then you have to write a long document for detailing the requirements and specifications and then to spend time communicating, reviewing, and testing the final product, a process which consume lot of time and most likely will frustrate you. [Just ask anyone gone through this process for one time or more.]
Solution No (3) is the most feasible and suitable approach for such case. Spend time to learn to program and develop the required application yourself. It is faster and less frustrating.
Yes, I hear you saying: but that will take forever and I am not a math genius?
Yes it will take a while, but believe me selecting the right tool and a good course or tutorial will take you there faster than you anticipate. About the math thing: seriously I dont know why people think programming is math related. Believe me it has nothing to do with math, unless you are trying to program something math related.
Being able to program your own required small tools/applications will improve your productivity, free lot of time spent on repetitive tasks that can be automated, which will increase your over all value to your organization and that in turn will position you- hopefully- for a promotion.
So...
what programming language should you learn?
Well, I am not going to bore you with a non-sense – marketing-biased debate, I will put few scenarios that will help you find the best programming language for your specific requirements.
Let’s go…
Important Note for IT/Programming Students: This post is not meant for IT/Programming students. If you are studying programming as a career choice, I would advise a different set of tools and programming languages to begin with. Read this post here as an informative piece rather than an advise on selecting your programming-language of choice.
Scenario (1):
You want to create a data entry desktop application with few non-conventional reports.
Learn: Visual Basic .Net
Visual Basic is an easy to grasp and it has a liberal coding rules. Visual basic – being a derivative of BASIC – has an English like programming statements (commands/verbs). It has very liberal syntax structure; white spaces are forgiven, upper cases and lower cases are interchangeable, and it connects to wide data stores (databases). In visual studio (the host application for Visual Basic .NET) you can create screens (aka forms) using drag and drop, you can use lot of wizards to create what you want, and above all you get all the tools needed in one download-able package.
Visual Basic can be downloaded as Community Version for free here.
Resources:
1- Microsoft absolute VB.NET beginner course.
2- Tutorials point have one of the most well written tutorial on VB.NET.
3- This Udemy course on VB.NET is a very good course.
Scenario (2)
You want to do unconventional and complex data analysis based on a data set you have. The data set might be stored in MS Excel sheet, or a database file/server, or in plain comma delimited file (CSV).
Learn: R language.
It’s not a cup of coffee for most people, but regardless of its steep learning curve, R is the best programming language if you want to do complex unconventional statistical analysis on a pre-set data. You dont need to learn how to build complex algorithms, almost everything is taken care of by the language. And if that’s not enough to encourage you, seeing the output of its data visualization tools will make you speechless. ?And best of all, this all and more can be accomplished in just few lines of code.
To take R for a spin without any commitment, you can run test commands through R Fiddle online interpreter here. When you feel ready for long term commitment, I recommend to use the free edition of R Desktop Studio. Currently the best combination- in my openion- to start seriously coding on R is to use R Studio. Note that you will need first to download and install R and then download and install R Studio.
Resources:
1- This is one of the must read books for R, R for beginners. Its free download.
2- Code school have a great tutorial to master R, find here.
3- Tutorial point has one of the comprehensive tutorials about R, find it here.
Scenario (3)
You want to build financial models, and run various complex scenarios.
Learn: Python
Python is a general purpose programming language which is currently in high demand. Using this language you can do almost everything, but recently it is gaining market share/ground in data analysis. The most important aspect that attracts new people to Python is its easy syntax. It has flat learning curve and it is widely used by many companies.
To take this amazing language for a spin, you can start with its fiddle here, then download the python here.
Resources:
1- my favorite place for python is the tutorials point here.
2- One of the best places to learn Python seriously is Treehouse courses. Its a paid site.
3- This course on Udemy is - in my opinion-one of the best online courses for Python.
Scenario (4):
You want to build simple website to showcase/publish your researches/articles/work samples
Learn: Wrodpress!
Yes, I am not kidding, you dont need a programming language to build a good looking website. Wordpress is a Content Management System (CMS) that enables you to create good looking website in a short time. No kidding!
So what about (HTML , PHP / ASP and Javascript)?
Look: HTML, Javascript, PHP / ASP will not help you to make good looking site in few weeks. It takes huge amount of time to make good looking and well structured website, a task that usually requires a team of at least a programmer and a graphic designer. Spending that kind of time to end up with mediocre website which is full of bugs/and security holes is not a good decision. Start here to book yourself a site on their free service. Then when you feel happy with the result you can move on to their paid service.
Resources:
1- Start with this beginners video tutorials.
2- I strongly recommend this course on Udemy.
3- Wordpress.com video tutorials.
Scenario (5):
You want to taste what is programming and to see how to instruct a computer to do something!
Learn: Ruby
biased-writer Disclaimer: While my first programming language was BASIC (late 80s), and I am always biased toward anything (Microsoft and Visual Basic), I seriously believe that Ruby is exceptionally fun to learn.
Ruby is a good interpreted programming-language, it will help you to see your code results immediately without going into complexity of compilers and packages. Ruby is one of the languages that focus on readable code rather than concise code. [Readability of produced code is a fundamental aspect of code productivity and maintainability in software development]. Most languages rely on programmers to comment and use their own standards to maintain readability. Ruby on other hand forces readability in the code itself, making it less comment-demanding. So give it a go online here. And all the tools needed can be found here.
Resources:
1- Codecademy ruby course is a great start. (you have to sign up to access their free courses).
2- This one I must have put as No (1). The Ruby monk!
3- The guys who teach code the hard way. They also have a ruby version!
Conclusion:
I am – not surprisingly- big advocate to programming for everyone. Programming improves cognitive capabilities and helps to solve many challenges faced by professionals in day-to-day duties. In this post, I tried to help non-IT professionals with specific scenarios to choose the right programming language for their needs.
Keep learning!
Chief Commercial Officer at Mamun
7 年well written. I picked up python sometime ago a work in progress I am beginning to enjoy it. the supposed math barrier is the biggest misconception.
Senior Computer Programmer at drc
7 年Good read ... ???