11

How To Get Started Programming And Which Language To Choose

 2 years ago
source link: https://medium.com/@jacobwoods45/how-to-get-started-programming-and-which-language-to-choose-42607dffda1d
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

How To Get Started Programming And Which Language To Choose

A Realistic Roadmap To Point Beginners In The Right Direction

The Best Way To Learn A Programming Language

The best way to learn a programming language is to watch tutorials and read online to grab a basic understanding of the language, work on projects, and learn as you go by looking things up.

  1. Learn the basic syntax of a language through online tutorials. Program alongside tutorials and books while pausing often to try running the examples yourself.
  2. Once you have a good idea of the language begin on a simple project. This should be something that interests you but isn’t impossible. Even Zuckerberg didn’t program Facebook as his first project. Think about some simple projects that might improve your life or build upon knowledge you already have.
  3. Google. Stack Overflow. Medium. While working on your project do not be afraid to look things up online. Every programmer I have ever known spends just as much time researching and reading as they do actually writing — if they are telling you otherwise they’re lying. Just like most great writers are avid readers the same holds true for programming as well.
  4. Have fun! If at any point you aren’t enjoying your project feel free to switch languages or try a different project. Most people get really frustrated when programming and things are not working but that’s the fun of it! Working on a problem until you find a solution can be incredibly satisfying.

Projects

Needing inspiration for a project? Check out this list of language specific projects on Github. It’s great because it includes many step by step tutorials and examples that are really beginner friendly.

Choosing A Language

The number one question that I get asked by friends and peers when learning how to program is which programming language they should choose. My answer: It really depends on what you want to do. Which, frankly can be a challenging question to answer quickly but here we go.

The first thing I ask them is what sort of project they would like to work on. It’s true that given enough time and effort that it does not matter what language you choose for a project but in reality some languages are better suited towards some applications.

Game Development

Game development is one of the most popular reasons out there to learn a language. Rightfully so, most people’s fondest memory with a computer is playing a video game. There are two great languages and platforms for game development: C# and C++. C# is the language of choice for Unity and C++ is the language of choice for Unreal Engine. Both Unreal and Unity are tools that offer the ability to develop for virtually every platform from PS5 to mobile.

Here’s some great resources:

Desktop Applications

Write once. Run anywhere. This is the mantra of Java. Although I don’t have much experience with Java I believe it holds the title for most machines running on and is the most popular language for writing desktop applications

Here’s a great resource:

Java Tutorial For Beginners by Mosh— Really long video but well spoken and clear about how to get started in Java.

Mobile Dev

With hundreds of millions of apps on the app store, knowing mobile development can be a handy tool in a developer’s tool kit. For mobile development Swift would be the language of choice for Apple products and Kotlin would be the language of choice for Android. Both Kotlin and Swift are considered “native” languages meaning that they will offer the best performance and most compatibility with the their respective platforms. (Beware: to develop for Apple you can only write on Macs or in some instances the iPad) If you’re looking to develop cross-platform apps meaning you write one program for both devices I would recommend Dart for developing Flutter applications.

Here’s some great resources:

Hacking With Swift

Apple’s SwiftUI tutorial

Google’s Code Lab

Web Development

Web dev can only really be done with JavaScript, HTML, and CSS. HTML is the format of the content, CSS is the styling, and JavaScript logic and interactivity of a website.

Here’s Some Great Resources:

All of these are by Brad Traversy! Can’t recommend him enough! His YouTube videos and Udemy courses are fantastic.

Full Stack (Front-End Backend — Server and Application)

Again, JavaScript :) Once you have a good grasp of JavaScript, CSS, and HTML look into different “tech stacks” (groups of frameworks that are often all on the same language)

Top Recommendation:

MERN — MongoDB, ExpressJS, React, Node.js They all use JavaScript but use different frameworks that allow JavaScript to run on the front-end, back-end, and database.

Here’s A Great Resource:

Brad Traversy’s MERN Udemy Course — Fantastic tutorial! Suited for those that have experience in JS, HTML, and CSS and well worth the money when on one of Udemy’s many sales.

Robotics/Electronics/Internet of Things (IoT)

My recommendation for these three areas of software development would be to start with one of two devices: a Raspberry Pi and Arduino. Both these two devices are basically pocket sized computers that can interact with other sensors, motors, and electricity.

Each are pretty language specific so choose Python for Raspberry Pi and C/C++ for Arduino.

Which to choose?

-If you’re more interested in the electronics part such as sensors, motors, and general electrical engineering concepts I’d choose the Arduino.

-For internet based, IoT, and projects that don’t involve as much electronics, sensors, and knowledge outside of just software development I’d choose the Raspberry Pi.

Great resources:

Machine Learning

Beware: Machine learning is not a field of software development that is not geared towards beginners. Python is the standard for machine learning these days. The extensive libraries such as TensorFlow and PyTorch make it approachable given enough time and effort. Focus on learning the language in and out and upside-down before getting started. I personally don’t have much experience here so I can’t recommend a specific resource.

Best For General Purpose

For general purpose programming I would recommend Python. Why? Python offers an extensive amount of libraries for developing web scrapers, vision systems, robotics, and programs to automate parts of your life. It also is one of the easier languages to pickup as you can do a lot with a little bit of basic programming knowledge.

Corey Schafer — Great YouTube Channel! Corey explains things very clearly and understandably.

Tech with Tim — Tim does some really neat projects that can get you hooked on programming really easily and is one of the most creative programming Youtuber’s out there.

Closing Thoughts

Be patient. Have fun. Don’t be too hard on yourself :)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK