A recurring question on these boards is ? how do I get started in programming? ? Whether it?s choosing a programming language, finding tutorials or choosing an IDE, this FAQ is here to provide some guidance.
The FAQ assumes you want to start making desktop applications, with the most likely purpose of preparing for a Computer Science or Software Engineering degree. If you want to program websites, stop reading this and head over to w3schools.com. If you?re aiming for a particular domain (games, robotics, research etc), read this and then if any doubt remains please ask in the forums.
1) What programming language should I start with?
Short answer: Any widely used, general-purpose programming language can be a good choice. If that can be of any help, this author?s opinion is that you can?t go wrong with C#.
Long answer: What you?re looking for is a general-purpose programming language that:
Will teach you elements common to most languages (statements, expressions, loops, conditionals, functions, objects, operators etc)
Has a relatively clean syntax, logical design, and doesn?t lose you in low-level details
Is popular and useful
Has good IDE support so you can concentrate on learning how to program and not how to fight your way around crappy tools
Let's compare 4 of the most widely recommended languages:
C:
Barebones, ?close to the metal? language, goes hand-to-hand with a course on computer architecture
Ancient and eternal
Hard to do anything graphical or even text-based (GUIs, games): C is primarily designed as a systems programming language
Lacks such basic features as a string type, a container library, support for OOP, etc.
C++:
All the advantages of C plus support for objects and generics, and better standard library
Essential skill for any game programming position and in a wide array of domains
Complex at the outset: hard to learn, hard to master
Like C, it is mainly designed as a systems programming language
C#:
Logical, reasonably simple
Productive for GUIs, games, databases etc.
Shields you from the OS (the .NET framework act as an intermediary), a good thing in many ways except for learning how computers work
Not meant for writing device drivers or other such low-level code
Python:
Highly intuitive and elegant, geared towards beginners
Interactive prompt lets you learn by trial-and-error much faster
IDE support (debugging tools, etc) not great
Shields you from the OS and computer architecture (same as C# in that regard)
Other possible choices:
Java (similar to C#; if you're on Windows, C# is the better choice)
Ruby (similar to Python, but not as popular)
Objective-C (popular for Mac and essential for iPhone development)
Visual Basic (very similar to C#, but geared towards VB6 developers and beginners; many would say its peculiar syntax and legacy baggage make it an inferior choice)
Functional languages like Scheme, Haskell, F#, Lisp, etc. which are interesting from a CS perspective but not that widely used.
One good IDE (Integrated Development Environment). What is available depends on your platform:
WINDOWS:
For C, C++, C# and Visual Basic, look no further than the Express Editions of Visual Studio. They are free, stripped-down versions of the most widely used IDE in the industry. Check out the video tutorials there to get you started. If you are a student, you also might be eligible to a free, full version of Visual Studio through Dreamspark or MSDNAA.
The remaining tools are compatible for Linux and Mac as well:
For Java, both Eclipse and Netbeans are great choices. Be sure to check the great tutorials offered on both of these sites.
An alternative for C, C++, C# and VB development is MonoDevelop. Frankly, Visual Studio trumps it on Windows, but it's pretty much the only way to do serious .NET (C# and VB) development on Mac and Linux, where Visual Studio is not available.
MAC:
In addition to the cross-platform tools mentioned above:
For C, C++ and Objective-C, be sure to get Xcode. The recommended choice for developing iPhone applications as well.
LINUX:
In addition to the cross-platform tools mentioned in the Windows section:
For C and C++, the best IDE is probably Code::Blocks, but there are several alternatives.
Note that you don't necessarily need any particular IDE. Some people, especially Linux users (for some reason) prefer a "simpler" setup using just something like Programmer's Notepad (or even plain text editors like notepad. gedit etc) in combination with their favorite compiler (GCC, MSVC, etc).
You will still hear people recommending Dev-C++ around the net. To put it simply: don't use it.
This 4K webcam from Acer is now only $59.99 by Taras Buria
Those looking for an affordable, high-resolution webcam from a reputable manufacturer can check out the latest deal from Acer, which puts its 4K webcam at a solid price. Thanks to a 14% discount, you can buy this all-metal 4K webcam from Acer for just $59.99.
Despite the affordable price tag, the webcam has a pretty large 1/2" CMOS sensor manufactured by Sony. Apart from its size, it supports additional conveniences, such as high dynamic range and phase-detection autofocus (PDAF). Plus, the camera ensures you do not have to buy additional audio equipment, as it comes with two built-in high-sensitivity microphones, a built-in background noise filter, and the ability to pick up your voice from up to 2.5 meters away.
Acer is not cheaping out on materials, and the webcam is enclosed in a more premium metal case, which is also good at heat dissipation (high-resolution cameras can get quite hot). And to make sure no one is peeping at you when the camera is in use, there is a magnetic cover also made of metal.
Additional conveniences include an LED status indicator and a built-in mount that lets you place a camera on a tripod.
Acer 4K Webcam for PC/Mac with All-Metal Unibody Sculpted - $59.99 | 14% off
Good to know
This Amazon deal is U.S.-specific and not available in other regions unless specified.
We only use first-party seller links (at the time of article publishing); ensure that you purchase from a first-party seller link only.
Check out Today's Deals on Amazon | or our recent tech deals.
Become a Prime member (for Students or SNAP) via Neowin
Get Prime Access - Prime for half price (for qualifying Medicaid, EBT, SNAP)
Subscribe to Prime Video, Audible Plus, Music Unlimited, or Kindle Unlimited via Neowin
As an Amazon Associate, we earn from qualifying purchases.
Question
Andre S. Veteran
A recurring question on these boards is ? how do I get started in programming? ? Whether it?s choosing a programming language, finding tutorials or choosing an IDE, this FAQ is here to provide some guidance.
The FAQ assumes you want to start making desktop applications, with the most likely purpose of preparing for a Computer Science or Software Engineering degree. If you want to program websites, stop reading this and head over to w3schools.com. If you?re aiming for a particular domain (games, robotics, research etc), read this and then if any doubt remains please ask in the forums.
1) What programming language should I start with?
Short answer: Any widely used, general-purpose programming language can be a good choice. If that can be of any help, this author?s opinion is that you can?t go wrong with C#.
Long answer: What you?re looking for is a general-purpose programming language that:
Let's compare 4 of the most widely recommended languages:
C:
C++:
C#:
Python:
Other possible choices:
2) What are some good tutorials on the Internet?
Classified by language:
C/C++
C#:
Python
3) What software do I need?
One good IDE (Integrated Development Environment). What is available depends on your platform:
WINDOWS:
The remaining tools are compatible for Linux and Mac as well:
MAC:
In addition to the cross-platform tools mentioned above:
LINUX:
In addition to the cross-platform tools mentioned in the Windows section:
You will still hear people recommending Dev-C++ around the net. To put it simply: don't use it.
4) Can you recommend some books?
For complete beginners:
C Primer Plus (5th Edition)
C++ Primer Plus (5th Edition)
Illustrated C# 2008
Beginning Visual Basic 2010
Learning Python: Powerful Object-Oriented Programming
How to think like a computer scientist: Java edition, C++ edition, Python edition, Ruby edition
Will add more later !
Link to comment
https://www.neowin.net/forum/topic/899286-getting-started-faq/Share on other sites
70 answers to this question
Recommended Posts