Jump to content

Starting to learn programming

MADCATZ

Hey guys,

 

I am 15 years old, and very interested in all forms of technology....have been since a young age. I have wanted to learn about programming for a while and figured now would be a good time to start, but I have no idea where. I am mostly interested in PC software programming......Where would you guys recommend starting, I have been considering signing up for Lynda.com and studying off that. 

 

Just wondering what you guys think, where should I start and what language should I aim to learn ? 

 

Cheers! 

Intel i5 3570K. Cooler Master Seidon 120V. Asus P8Z77-V LK. Corsair vengeance LP 8GB. EVGA GTX 980 TI ACX 2.0+ SC. Seasonic M12-II 750w. NZXT H440. Crucial BX100 250GB. Corsair Neutron 64GB SSD. Seagate 1TB. Razer Death Adder 2013. Razer Blackwidow Tournament. Beyerdynamic DT 990 PRO 250 ohm/Mod Mic 4.0. FiiO E10K DAC. Steelseries QCK+. Benq XL2430T@144Hz. 2x Dell U2414H. Phone Sony Xperia Z3

Link to comment
Share on other sites

Link to post
Share on other sites

I'd suggest starting off with something low end, such as HTML or Python.

Specs: CPU - Intel i7 8700K @ 5GHz | GPU - Gigabyte GTX 970 G1 Gaming | Motherboard - ASUS Strix Z370-G WIFI AC | RAM - XPG Gammix DDR4-3000MHz 32GB (2x16GB) | Main Drive - Samsung 850 Evo 500GB M.2 | Other Drives - 7TB/3 Drives | CPU Cooler - Corsair H100i Pro | Case - Fractal Design Define C Mini TG | Power Supply - EVGA G3 850W

Link to comment
Share on other sites

Link to post
Share on other sites

Codecademy has alot of beginner languages that you can learn.

i5-4690k@4.5GHz || MSI GTX 970 || MSI z97 Gaming 5 || NZXT Kraken x61 || WD Black 1TB || Crucial MX100 || 8GB Corsair Vengeance Pro || Corsair RM750 || NZXT H440 || Corsair k70 RGB mx browns || Acer H236HL || ViewSonic VX2255wm-4

Link to comment
Share on other sites

Link to post
Share on other sites

I am biased towards C++ since I find it the perfect balance of being low level enough to do really manual control like moving blocks of memory yet still high level enough you can make useful programs relatively easily.  Plus, it's super powerful, high efficiency, not really specialized to any one task, and the vast majority of programs are written with it.

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

You can try with EDX.org, have many courses

Case: NZXT phantom CPU:I5-4460 GPU:MSI-GTX1070 Gaming X RAM:2x4Gb-DDR3-HyperX fury MOBO:Asus Z97-P HDD:Toshiba 1Tb 7200rpm PSU:Sentey650W

Link to comment
Share on other sites

Link to post
Share on other sites

Codecademy has alot of beginner languages that you can learn.

This, codecademy.com they also have just started work on Java....

Join the Appleitionist cause! See spoiler below for answers to common questions that shouldn't be common!

Spoiler

Q: Do I have a virus?!
A: If you didn't click a sketchy email, haven't left your computer physically open to attack, haven't downloaded anything sketchy/free, know that your software hasn't been exploited in a new hack, then the answer is: probably not.

 

Q: What email/VPN should I use?
A: Proton mail and VPN are the best for email and VPNs respectively. (They're free in a good way)

 

Q: How can I stay anonymous on the (deep/dark) webzz???....

A: By learning how to de-anonymize everyone else; if you can do that, then you know what to do for yourself.

 

Q: What Linux distro is best for x y z?

A: Lubuntu for things with little processing power, Ubuntu for normal PCs, and if you need to do anything else then it's best if you do the research yourself.

 

Q: Why is my Linux giving me x y z error?

A: Have you not googled it? Are you sure StackOverflow doesn't have an answer? Does the error tell you what's wrong? If the answer is no to all of those, message me.

 

Link to comment
Share on other sites

Link to post
Share on other sites

You should build a solid foundation with C.

If you can master C, then learning every other language will be a lot easier.

 

Don't start off with java or other higher level languages. You'll find it harder to learn C or C++ if that is your goal

[spoiler=»--((¯`·._.·¤~●oO му яιg Oo●~¤·._.·´¯))--«] Case: Corsair 600T White       CPU: Core i7 3930k @ 4.3GHz                     SSD: Crucial M500 480GB

MB:    Asus P9X79 LE         GPU: Nvidia GTX 780 Reference             HDD: WD Caviar Green 3TB

PSU:   Seasonic X-1050      RAM: G.Skill Trident X 32GB @ 2.4GHz   ☃ There are 10 types of people in this world. Those who understand binary and those who don't.

Link to comment
Share on other sites

Link to post
Share on other sites

Codecademy has alot of beginner languages that you can learn.

 

Highly recommend for beginners. It explains everything clearly and you practice each step yourself before moving forward. 

Won't allow you to be advanced, but use it to understand the logic behind programming.

Link to comment
Share on other sites

Link to post
Share on other sites

Or if you are completely insane, you could write an entire game in x86 assembly.  It's really efficient :D

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

Code Combat is a good start IMO but only for so long and teaching the basics. It offers the most common languages and you can switch between them at will.

If I use words like probably or most likely, it is because I dislike certainty. These words can probably be omitted and the sentence read as a certainty.

Link to comment
Share on other sites

Link to post
Share on other sites

Hey guys,

 

I am a 15 year old, who is very interested in all forms of technology....have been since a young age. I have wanted to learn about programming for a while and figured now would be a good time to start, but I have no idea where. I am mostly interested in PC software programming......Where would you guys recommend starting, I have been considering signing up for Lynda.com and studying off that. 

 

Just wondering what you guys think, where should I start and what language should I aim to learn ? 

 

Cheers! 

Python and HTML/CSS (Don't learn Python on code academy, it teaches Python 2.7 not 3.4  which are very different)

Python may not be the best language for everything but it gets the fundamentals down without having to worry about finicky syntax.

And everyone needs to know a bit of HTML/CSS

Link to comment
Share on other sites

Link to post
Share on other sites

Python and HTML/CSS

Python may not be the best language for everything but it gets the fundamentals down without having to worry about finicky syntax.

And everyone needs to know a bit of HTML/CSS

Finicky syntax is the perfect thing every programmer should start with.  It enforces and requires a very solid understanding of exactly what you are doing.  Languages that let you just kind of type whatever and they figure out what you mean might be convenient and easy for those who don't really want to spend the time to learn them, but they provide the option of not doing that learning and just being lazy, and I don't think it pushes you to really learn thouroughly

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

x86ASM is the best starter language, enforces exact coding.

Link to comment
Share on other sites

Link to post
Share on other sites

Finicky syntax is the perfect thing every programmer should start with.  It enforces and requires a very solid understanding of exactly what you are doing.  Languages that let you just kind of type whatever and they figure out what you mean might be convenient and easy for those who don't really want to spend the time to learn them, but they provide the option of not doing that learning and just being lazy, and I don't think it pushes you to really learn thouroughly

I understand that, but my point was that it teaches you the theoretical side of programming which can be applied to every language, syntax is not the same, it changes with almost all of them

Link to comment
Share on other sites

Link to post
Share on other sites

x86ASM is the best starter language, enforces exact coding.

Maybe let's not go quite that exact.  We should start with something that has concepts that can be grasped, not something that's like trying to understand it's an elephant you're looking at by examining every square inch with a microscope :)

 

I understand that, but my point was that it teaches you the theoretical side of programming which can be applied to every language, syntax is not the same, it changes with almost all of them

that's true.  I just think that with languages that are more "friendly", it might be easier to get started, but then if you don't put in the effort to learn it (and remember it won't force you to like some) it will be harder down the line since you won't really know the finer points of everything you write.

But if Python still uses the bracketing system (or lack thereof) it had when I looked at it initially, I would encourage starting with this too to some degree - it will enforce learning proper indentation which is incredibly simple, but incredibly important and unfortunately often left out by amateurs.

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

Finicky syntax is the perfect thing every programmer should start with.  It enforces and requires a very solid understanding of exactly what you are doing.  Languages that let you just kind of type whatever and they figure out what you mean might be convenient and easy for those who don't really want to spend the time to learn them, but they provide the option of not doing that learning and just being lazy, and I don't think it pushes you to really learn thouroughly

 

Yes, I completely agree & C is a very solid language to start off with. You can adapt to C++ later and most of the popular higher level languages are based on C anyways.

[spoiler=»--((¯`·._.·¤~●oO му яιg Oo●~¤·._.·´¯))--«] Case: Corsair 600T White       CPU: Core i7 3930k @ 4.3GHz                     SSD: Crucial M500 480GB

MB:    Asus P9X79 LE         GPU: Nvidia GTX 780 Reference             HDD: WD Caviar Green 3TB

PSU:   Seasonic X-1050      RAM: G.Skill Trident X 32GB @ 2.4GHz   ☃ There are 10 types of people in this world. Those who understand binary and those who don't.

Link to comment
Share on other sites

Link to post
Share on other sites

I understand that, but my point was that it teaches you the theoretical side of programming which can be applied to every language, syntax is not the same, it changes with almost all of them

However I definitely feel the fundamentals can be learned WHILE you also follow strict rules of some languages. 

C++ was my first, and however frustrating that was, it forced me to learn to code cleanly and follow certain guidelines, as opposed to a lot of ugly code I see out there. 

Edit: That said I'm not suggesting starting with C++

Link to comment
Share on other sites

Link to post
Share on other sites

I'd say C++ and not C.

Why you may ask? Why not? You can do everything you could have wanted to do with C in C++ , and it has quite a few additional and important features, such as OOP , and also a few interesting things in newer C++ standards.

i5 4670k @ 4.2GHz (Coolermaster Hyper 212 Evo); ASrock Z87 EXTREME4; 8GB Kingston HyperX Beast DDR3 RAM @ 2133MHz; Asus DirectCU GTX 560; Super Flower Golden King 550 Platinum PSU;1TB Seagate Barracuda;Corsair 200r case. 

Link to comment
Share on other sites

Link to post
Share on other sites

I'm gonna swim against the current here, everyone here is suggesting C/C++ and while they are both great languages I don't think they are ideal for a beginner.

I think you should start with C# it's easy, flexible and powerful. Also video tutorial are helpful but you will NOT get a good grasp only using those, get a good book.

Link to comment
Share on other sites

Link to post
Share on other sites

I would suggest that you start out with learning HTML/CSS and Javascript.

It is easy to get started with, you'll instantly see results that are more than just a console window with text in it.

 

Another benefit is that you can virtually do anything with Javascript.

You can program websites, games, desktop and mobile apps for virtually any platform and servers with Javascript.

And even more low level stuff like Samsungs IOT devices and some microcontrollers are moving to Javascript.

Link to comment
Share on other sites

Link to post
Share on other sites

I'm going to just recap my experience with learning to program as a whole and let you glean from it what you will.

 

I was introduced to C++ at quite a young age (<10) and didn't go much beyond the basic control structures and variable types like int, char, if, for, cin and cout, etc.

I made some simple programs, and it taught me enough to get an understanding of and for the concept of "the computer will not read your mind - you must tell it exactly what you want in its exact language or it will not work", and I think that served me well over the coming years and continues to today.

 

A few years later a friend introduced me to Adobe Flash, and for the next several years I really got into ActionScript (2.0).  I look back at this as one of the most important steps in my journey.  You see, the syntax was really quite C-like, but it was much more "fluffy".  No more did you need a semi-colon to end lines or to specify the type of variable you were using.  Most importantly, however, being Flash, it was not just text-based.  You could draw shapes on the screen, animate them, and then add code.  It drove home the idea of an "object" in such a hands-on way that I can scarcely imagine a better way to learn it.  The concept of structs, classes, and other objects like vectors, strings, streams, etc. all came very naturally to me when I got back into C++ as a result of this experience.  Learning it was also useful because A ) it was very useful in and of itself and I made many things in Flash (for local use - not on the web; calm down people ;)) and B ) learning ActionScript has helped me jump into many other tools and languages like JavaScript for example with virtually no time needed to adjust because it is so similar.  This has helped me in my personal life and professionally as I have created various things for work that drew in one way or another on this knowledge.

 

Finally, in high school I got back into C++, only much more extreme this time.  I like to think I'm pretty handy with the language itself in its purest form, and also know a decent amount of Windows specific things, as well as Linux specific, and this has allowed me to make things like multi-threaded image editors, not to mention breezing through programming classes in high school and university.

 

So that's that :)

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

It's good to at the very least have a basic understanding of HTML and CSS. Python is a great language to start with because it is very general purpose, so concepts in python can be applied to other languages easily.

CPU: AMD FX-6300 4GHz @ 1.3 volts | CPU Cooler: Cooler Master Hyper 212 EVO | RAM: 8GB DDR3

Motherboard: Gigabyte 970A-DS3P | GPU: EVGA GTX 960 SSC | SSD: 250GB Samsung 850 EVO

HDD: 1TB WD Caviar Green | Case: Fractal Design Core 2500 | OS: Windows 10 Home

Link to comment
Share on other sites

Link to post
Share on other sites

My input isn't too terribly different from what anyone else has said so far, but might have a different perspective.  A bit of a longer post than I expected when I started (happens to me a lot), but there's a summary at the end.  Fair disclaimer, I know a lot more about Python than I do about other languages, so I may say some things not quite entirely accurate (people who know more, by all means correct me if I misrepresent or am just wrong about something).

 

If you have absolutely zero coding experience, Python is a great starting point.  It's not optimal for writing large applications in, and since you said you want to write programs, it might not be the best thing to end up with at the end of the day.  But, the syntax is clear, the language forces you to use good formatting/code layout--using proper indentation is actually a syntactic requirement, and the language has a very strong focus on clear and readable code--and it hides a lot of the really low-level stuff away so you can worry more about the logic of a program than the actual "how do I write that" step.  Plus, it's a massively versatile language, and you can use it for just about anything you want so long as having code that runs as fast as possible isn't an absolute necessity.  There are libraries that add support for web scraping, database management, statistics, numeric/scientific programming, natural language processing, and just about everything under the sun.  But Python code will rarely run as fast as equivalent code in languages like C or Java.  All the same, it's a great place to start to just get your head around basic programming ideas and practices.

 

Some of Python's big advantages are that it's fast for writing and modifying your code, very easy to read, and can do almost anything you could possibly need.  Python really shines outside the world of just doing software development--it can be an almost complete replacement for Matlab with the right libraries, and it's amazing for doing data analysis and number crunching and other such tasks.  The big disadvantage is that it's not compiled, like a lot of more widely used languages, but rather interpreted.  This effectively means that if you have code in Python and, say, C that both do the same thing, the C code will generally run faster.  The difference can vary a lot from "negligible" to "a hell of a lot," but you should also consider the ease of writing and maintaining the code.  It might also be a bit faster to debug a Python program, because with a compiled language, you have to wait for the code to compile before running it; if you need to do a lot of testing, there's a chance this step will add a lot of time over multiple test runs.  With Python, you can either click "run" from inside some code editing programs, or just run your .py file (which has the code in it) directly--there's no waiting for it to compile.  But, again, the tradeoff is that the actual "running the code" step is usually slower.

 

For larger software applications or even operating systems, C/C++/C#/maybe Java are the big languages to look at.  They are, generally, very powerful and very fast (to run) languages.  But, writing the code can take you longer than in Python, code won't usually be as clean and easy to read, and you have to compile the program to run and debug it, which can all add to the time and effort it takes to write a big piece of code.  Especially early on when you're still learning.  C/etc. also give you a lot more fine control over how the computer runs what you write, and makes you think about a lot more nitty-gritty details of what the computer is actually doing, which will absolutely make you a better programmer in any language (including Python!).  While you can get at these ideas through something very high-level like Python, you're not forced to, and it's quite a bit harder since it's usually done behind the scenes without you having to worry too much about it.  C/etc. will force you to deal with low-level things like memory management and type declarations and such in order to get effective code, and you'll be a better programmer for it no matter what languages you use later.

 

C/etc. are also much more widely used in industry than Python, especially for software development.  C, in particular, also influenced almost every other language that came after it, either directly or indirectly.  (Python is actually implemented in C--you write your code, and the Python interpreter then runs a bunch of pre-written C code that does what you told Python to make your code do).  So if you learn C really well, a lot of other languages will look more familiar than if you're coming at them from Python.

 

So to sum that all up: You should ultimately learn something in the C/C++/C#/Java realm for software development, since those are industry standard for a lot of software development, and you can absolutely start learning programming with them.  You can also start with Python to ease into a lot of the general ideas and practices in programming, and Python is a very easy to use, versatile tool (and thus, very powerful).  But there are some really important ideas in programming and computer science that you just won't get a lot of exposure to if you only use Python, and you'll be a much better programmer in any language for knowing them.

Link to comment
Share on other sites

Link to post
Share on other sites

I am biased towards C++ since I find it the perfect balance of being low level enough to do really manual control like moving blocks of memory yet still high level enough you can make useful programs relatively easily.  Plus, it's super powerful, high efficiency, not really specialized to any one task, and the vast majority of programs are written with it.

This is very true, also try java as they are brother and sister. Pros of C# above, cons are that if you're going to use Visual Studio, some features are paid, but you don't generally need them. Pros of java is that while it isn't as robust, it can be much more powerful in the long run, and it's free if you use Eclipse. For now, I would either stick to C# or download an older version of Eclipse to code java, as the most recent version is still very buggy.

˙ǝɯᴉʇ ɹnoʎ ƃuᴉʇsɐʍ ǝɹɐ noʎ 'sᴉɥʇ pɐǝɹ oʇ ƃuᴉʎɹʇ ǝɹɐ noʎ ɟI

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×