using Linux to learn coding and software

dmaag54

Honorable
Mar 16, 2013
22
0
10,510
I am trying to understand the process of programming and software and was wondering would Linux be a good operating system to get my foot in the door to understand coding on an old 2010 Acer computer that is rarely used, and if so what version would i want to use to get the most of learning coding on my own?
 
Solution

danilovrb47

Honorable
Dec 19, 2013
48
0
10,540
To start learning, first choose programming language that you feel most comfortabe writing in. I use Windows OS, because I'm mostly programming in c++, java and c#. Operating system is of little importance on the very beginning of learning process.
 

dmaag54

Honorable
Mar 16, 2013
22
0
10,510


well the problem is that im not very sure on what one i would like i only heard of C++ because of gaming so much other then that not very sure on what there is out there i thought Linux uses many different coding
 
Start with python, imo easiest to learn. Very popular. Very powerful.
http://www.learnpython.org/
C and c++ are a rabbit hole for a beginning programmer.
There are hundreds of languages.
Java, Ruby, Perl, Lua, MATLAB, SDL, R, mono, c#, ... Many more.

Probably you should stick with Ubuntu for your first Linux distribution...
 

stillblue

Honorable
Nov 30, 2012
1,163
0
11,660
Ubuntu or Mint so you don't need to spend a lot of time learning the OS as well. For learning languages I recommend you install Eclipse or Netbeans to get your feet wet. They've got some great step by step tutorials.
 
TBH, Windows is just as good a platform to learn programming on as Linux (probably better if you are already familiar with Windows). As far as Linux is concerned, any distribution will do. If you go with Windows then I'd recommend starting with C#, using the free Visual Studio Express. That provides a superb environment to produce quite sophisticated GUI programs.

If you want to get into programming seriously then one of the mainstream languages (C++, C#, Java) will serve you well. As they are very similar, once you have learnt one it is easy to learn the others. The great thing is that nowadays there are a wealth of free programming environments, and great documentation and tutorials, availbale.
 

dmaag54

Honorable
Mar 16, 2013
22
0
10,510


thats what one of my friends was telling me about programming but the only problem is with windows its all icon based and very little to learn as far as i know could you explain for how i could learn with window and i was thinking of c++for the fact that i could transfer to gaming programming if i will the need
 

dmaag54

Honorable
Mar 16, 2013
22
0
10,510


but i thought C and C++ are the most used in programming and the base of all programming language
 

stillblue

Honorable
Nov 30, 2012
1,163
0
11,660
The programming in any language does not need to be GUI based, they just make it easier and a little less tedious. You can always do your programming in Notepad. In Linux like windows you have tools to help you like "UniversalIndentGui" which can indent all your lines correctly to make the code easier to read. Or gPHPedit that automatically colors the code for you so you can find errors faster. Netbeans and Eclipse take it further by making up skeletons of code so you don't spend a lot of time on making tabs for example. They're all just tools, you do the creating.
 


I'm afraid that I don't understand what you mean by saying that Windows is icon based. Sure it has a GUI, just like Linux does, but it also has a command-line interface, just like Linux does.

Visual C++ Express is a really good environment for C++ programming, be it command-line tools, GUI programs or standalone games. Other programming environments exist on both Windows and Linux. The only aspect of programming where I would strongly recommend Linux over Windows is if you are writing an Operating System; if you are new to programming then that's probably a few years down the line.
 

stillblue

Honorable
Nov 30, 2012
1,163
0
11,660


The different languages are for specialization. You can do an entire accounting program in PHP for example but that's so you can put it on a server or website. Some languages you use so that there is no need to make windows and linux versions.
 

dmaag54

Honorable
Mar 16, 2013
22
0
10,510


im talking about how widows 7 is alll icons and not by having to type everything thats what i have on my desktop so my question is how would window be better then Linux for learn programming if all i have to do is click on a icon to get where i need to go. what programs would i need to use to learn mainly C++
 

WoodenSaucer

Reputable
Apr 2, 2014
130
0
4,710

He's right, though. Linux is great for programming, but one thing to keep in mind is that you'll be railroaded into the Free and Open Source Software mindset, which may or may not be what you're looking for.

If you're interested in Linux, go for it. But there is absolutely no reason to switch to Linux to learn programming. Windows can be just as good of an environment for programming, and depending on your goals, it could be better. Honestly, if I wanted to get into creating games, I would want to do it on Windows. If you're interested in C++, there is no better IDE than Visual Studio, which you can get for free with the Express edition. Even if you're interested in Python, you can do that in Windows, too.

So my advice to you is if you're interested in Linux and FOSS, go for it. But if you're just interested in learning to program games in C++, then Windows and Visual C++ Express is the way to go, by far.

After you make your decisions on your goals and what kind of games you want to make, we can help you with more advice at that time.
 
Solution


Though they are widely used (for many reasons including C being insanely fast compared to some other languages like python) C and C++ are not the 'base' of all programming language. They are just two in an ocean of different languages.

Suggest picking up python simply because it is 1000x easier to understand than C or Java. C can take many years to learn. Python you can pick up and use in less than a month.
 
im talking about how widows 7 is alll icons and not by having to type everything thats what i have on my desktop so my question is how would window be better then Linux for learn programming if all i have to do is click on a icon to get where i need to go. what programs would i need to use to learn mainly C++
Linux is no different to Windows in this respect; it's just that you are familiar with the Windows GUI but not (yet) with the Linux one - begging the question that there are a host of Linux GUIs.

From the perspective of learning how to program it makes not one iota of difference; in either case you still need to write the code, select the appropriate algorithms and data structures, and understand those algorithms.
 
C can take many years to learn.
I'd have to disagree with that. C is a very powerful language but, with the right tutorial material, it is just as easy to pick up the basics of it as any other language. The real art of programming is understanding data structures and algorithms and getting a grasp of the library routines. The mechanics of a particular language are not that different to any other. The advantage of learning one of the C family of languages is that you learn one and you have a huge head start with the rest as they are so similar in syntax.
 


I come to opposite conclusion. Much easier to focus problems and implement most all algorithms in python, sciPi, Matlab, R then if need more speed consider C implementation. Defining and manipulating structures is so easy in those compared to C, but C has advantage of low level access and optimizations which do take much time to learn.
 

WoodenSaucer

Reputable
Apr 2, 2014
130
0
4,710
If you've decided that you want to learn C++ or even C#, go download the desktop version of Visual Studio Express, and set it up for whichever language you are going to work with. Then if you want to learn C++, here is a pretty good tutorial to learn the language. After you have a good grasp on programming, which will not happen in one day, if you want to start working with 2D games, one solution that is made for C++ is SFML, which is very easy to use. If you want to mess with 3D gaming, then you'll either want to find 3D graphic models you can download and use, or check into the free Blender 3D modeling software, which will probably take you a long time to master. Then you can start looking into some of the free 3D game engines to mess around with. A few choices are Unity, OGRE, and Irrlicht Engine.


But again, it all depends on what the OP's goals are. He said he wants to learn game programming. If all he wants to do is mess with simple 2D gaming, then we do have PyGame, which makes good use of Python. But if he wants to go beyond what PyGame can handle, then C/C++, or even C# in some cases, is going to be his best bet. Most game engines and libraries are going to use C or C++ natively, and if you're lucky, they may have a wrapper for other languages, which is really just a hack.

I agree that Python is an easy way to get your foot in the programming door, but honestly, so is C#. And learning C# is going to do a lot more for helping him to transition to C++ later. I have experience with Python, Visual Basic, C#, C++, Java, and some javascript and PHP. What I've learned is that once you've learned the basics of how programming works, and have an understanding of Object Oriented Programming, you can learn about any programming language or API very quickly. Once you get those basics, it's much more valuable to hone your algorithm solving techniques, which can be used in any language.
 


If you want something done right, you do it in C.

C is a not a difficult language to learn, but it is very difficult to master.

Whereas other languages are typically quite wide and shallow, providing an enormous library of functions to work with yet providing no real control over the programs structure or memory management, C is very deep and narrow, providing only the essential tools for a programmer to have absolute control over his or her work.

Keep in mind that C was designed to make an entire operating system platform portable (save for some hardware specific stuff), and this is still very much the way things are done today.

https://www.youtube.com/watch?v=1S1fISh-pag
 

dmaag54

Honorable
Mar 16, 2013
22
0
10,510


well i know its not C but i have looked up a PDF file for C++ to understand and get a basic grasp on what it is i would like to learn
 


C++ is a superset of C. You can learn C first and then carry that all forward to C++
 

WoodenSaucer

Reputable
Apr 2, 2014
130
0
4,710
You can also look up that C++ tutorial I linked to in my last post. It's a very good resource for learning.


Or on the other hand, if you learn C++ first, you can pretty much already program in C if you think procedurally instead of object oriented. In my opinion in modern programming, it's probably more important now to learn C++ and the object oriented way. It's being used a lot more now than it was in the past. That's what I did, and then when I ran into things that required straight C, it wasn't a problem at all. I've found that if you start off with procedural programming, you get that ingrained in your mind, and it's a lot harder to understand the concept of object oriented programming than if you would have just started with OOP. It's a lot easier to go from OOP to procedural.
 


I disagree.

Learning C++ before learning C is akin to learning to walk before learning to crawl. It's possible, but it almost always leads to bad habits that can be very hard to break. I've seen tons and tons of downright terrible Java/C++ code because it was written by someone who had never worked in a purely procedural mindset.

On the other hand, I've never personally met someone who had a hard time adopting C++ after they were comfortable with C so I strongly disagree with your assertion that it's a lot easier to go from OOP to procedural than vice versa. Academically speaking, object-oriented programming is an extension of procedural programming. Microprocessors are inherently procedural devices, so thinking in imperative terms first and then using an object-oriented framework to make one's life easier is in my opinion the correct approach to solving a particular problem. C++ has some nice features to expedite development, but only a small handful of those features cannot be implemented in C through some clever data manipulation. Creating a basic object framework in C is an exercise that should be done by anyone who wishes to truly understand the way C/C++ work.
 

TRENDING THREADS