Re: Please offer programming language suggestions
I think there are three main arguments for not starting with an IDE:
- To better understand the build process so that you are more likely to develop the knowledge to fix problems that arise.
- To learn by looking at documentation and typing out the code rather than relying on code completion.
- To learn the shell and useful standalone tools like make, maven, bash.
Taking Java as an example, it is beneficial to understand the process of turning .java files into .class files, where to put the .class files and how to build and incorporate libraries of code in .jar files. With C/C++ it is beneficial to understand compilation, linking, headers and libraries. With Python it is beneficial to understand imports, modules and precompilation. Because an IDE handles a lot of this, new programmers often get lost when they try something beyond the bounds of a tutorial based around an IDE. Or perhaps when they have to handle code that wasn't set up for a specific IDE.
As far as code completion goes, it depends on the person learning, and perhaps the language. Some people learn better by working methodically and digesting documentation. Others work better by experimentation and filling in details later. An IDE helps with the latter.
Learning the shell and standalone tools is always a good idea, but using an IDE doesn't necessarily stop you doing that.
Personally I think there are benefits to doing something without an IDE as part of the learning process. Programmers, particularly those coming from Windows, can get too reliant on the IDE environment and not explore features of the shell and standalone tools. But DaviesX is quite right that IDEs make working with some languages easier. I wouldn't like to work on a large Java or Objective-C project without an IDE because typing things like ClassPathXmlApplicationContext and NSUbiquitousKeyValueStoreDidChangeExternallyNotifi cation is hard work. For C and Python I'm happier without an IDE.
As long as you reach the end point I don't think the path is important. That means learning the language, how projects fit together and how they are installed. If you choose to use an IDE, just make some effort to understand what it is doing for you and learn to appreciate the power of the command line environment (which is an IDE in itself).
Please create new threads for new questions.
Please wrap code in code tags using the '#' button or enter it in your post like this: [code]...[/code].