programming-for-engineers

Programming Resources for Engineering Students/Alumni

Programming is intimidating, but it does not have to be. If you know where to start and what concepts to learn first, you can be a programmer on an enjoyable path. This guide is open to contributions. If you have any resource recommendations, send a pull request.

A. FUNDAMENTALS

It’s always good to start with the fundamentals.

1. CS50x

The best introduction course to computer science offered by Harvard. Online lectures are available.

2. Tech Dev Guide

Start your CS journey with Google’s Tech Dev Guide curated by Google engineers and university faculty.

3. Github Basics

Having a version control system makes your life easier. Github’s offical tutorial is a good place to start.

4. A Civil Engineer & Developer Story

You are not alone. Watch the story of one of our friends’ presentations. (Turkish)

5. Which path?

If you are not sure which path to follow, Web, ML, etc. You may take this survey and see results. (Turkish)

B. SCIENTIFIC COMPUTING

If you need to make mathematical computations, you can start with

1. MATLAB

The most used language in universities. But it’s not free, hope your university has a license. This Coursera course is not bad.

2. Python

Python is the best language to start with for programming since it has an easy syntax. It’s free and scalable. There is an Introduction to Programming book.

C. WEB

Web programming is where most programmers end up with

1. HTML & CSS

Learning this couple is like learning the alphabets of web programming. Codeacademy’s interactive HTML & CSS courses are fun for beginners.

2. Javascript

If you learn JS and love it, you become unstoppable. Instead of millions of free JS courses, start with a cheap but qualifed Udemy course. Once you know the basics of JS, Just Javascript helps you build the mental model of how JavaScript works.

3. NodeJS & Express

I don’t have a stand-alone NodeJS course because most of them are included in JS courses. Search on Google to be a full-stack JS developer.

4. ReactJS

ReactJS is one of the most trending frameworks. The official site has very good documentation and tutorials. Best learning resource for reading type people.

5. Bootstrap

The best way to learn a CSS framework is to use it in your own projects. Find the best element for your requirements via its website.

6. ThreeJS

Creating 3D views in a browser makes you amazing. If you need such a visualization, it has a minimalist docs.

D. MACHINE LEARNING

Whether you want to be a machine learning engineer or not, you should have some fundamental knowledge.

1. AI for Everyone

Andrew NG is the introduction teacher for ML. This course is really for everyone.

2. Introduction to ML

A brief introduction to the ML course organized by the Global AI Hub community. Free access to videos and lecture slides are available. (Turkish)

3. Mathematics for ML

You can learn about the prerequisite mathematics for applications in data science and machine learning offered by Imperial College London. Mathematics for Machine Learning Specialization.

4. Machine Learning

The most beneficial course on Coursera is Machine Learning Course. Most probably better than your university ML lectures.

5. Deep Learning

Andrew Ng’s “Deep Learning: Zero to Hero” course series is highly suggested under the Deep Learning Specialization Program.

6. Deep Learning for Computer Vision

CS231n is one of the fundamental courses of computer vision at Stanford University. I suggest the Winter 2016 semester lectures in which NN parts were given by Andrej Karpathy. Lecture notes and assignments are available here.