UPDATE April 2018:
I found a really nice MIT course at edX.org “Introduction to Computer Science and Programming Using Python” and jumped into that. I’m still deep into that in my spare time and it’s going great! I do recommend it.
I’ve recently become a little interested in getting my feet wet with programming, more specifically, web application development. This is my experience learning to program.
It was hard for me to figure out which language I wanted to use. Several people over at the MangoLassi.it community helped guide me into making my final decision.
My main driving factors were that it hits all of the spots I need for my ideas in web application development, plus, it ties in well with a lot of things I already use, such as WordPress. On top of that, it’s an easy language to learn the concepts of programming. From there, other languages will be a little easier and I’ll likely move on to Python afterwards.
- Install the following packages to better support the setup:
sudo dnf install nodejs python3 python3-pip pylint
npm install -g tslint typescript
- Install Pylint:
sudo pip install pylint
On my Windows Laptop, I installed XAMPP: https://www.apachefriends.org/index.html
- Add PHP to PATH:
- Install Python:
- Add Python to PATH when installing
- Also, install the Pylint extension in VSCode (not indicated below).
Set up LAMP
If running this on your workstation desktop or laptop, you’ll need to install a web server stack.
To set this up, see my blog post here: https://www.timothygruber.com/linux/creating-lamp-server-fedora-27-ssl/
Note any differences you need to adjust for being a workstation.
Installing Visual Studio Code
VSCode is by far the best dev platform I have come across, and this seems to be the case for experienced programmers as well.
I set it up to work with my GitLab for version control and the other benefits. That’s been working out very well. I’ve been using GitLab for a while now with SaltStack, PowerShell, and Bash scripting… so why not for learning to program?
- Install the key and repository:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
- Update the package cache and install the VS Code package:
dnf check-update sudo dnf install code
I installed the following extensions in VSCode for both learning to program (PHP, Python, etc) as well as my professional needs:
Learning to Program
Moving on from getting set up, the rest is learning from books and practicing what you learn.
I chose this book to get started: PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (5th Edition) 5th Edition
I’m now a few chapters in and have already completed my first side-learning project that covers the first few chapters, and a little skipping ahead here and there for couple things.
I have found that to help keep what you learn, working on a “learning project” that has real value and usefulness to you will go a very long way.