Jump to content

I want to get into programming

Afternoon everyone 

 

I want to get into programming after a recent science project working with an Arduino. 

 

I read some articles that suggested I learn C#, C++ and Java. 

Some people also recommended that for a quicker results Python and Ruby were recommended. 

I have started to learn HTML on Code Academy. 

 

I am looking for feedback and ideas on what I should learn first, also please recommend interesting and fun projects that I can do to learn and get into coding even more. 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Programming must choose you before you can continue.

 

Edit: Honestly, best thing to do would be to start programming in C# or C++. Java is slowly being phased out as the backwards compatibility slows it down tremendously. Python would be a great choice as well.

@FactoryNew

Cor Caeruleus Reborn v6

Spoiler

CPU: Intel - Core i7-8700K

CPU Cooler: be quiet! - PURE ROCK 
Thermal Compound: Arctic Silver - 5 High-Density Polysynthetic Silver 3.5g Thermal Paste 
Motherboard: ASRock Z370 Extreme4
Memory: G.Skill TridentZ RGB 2x8GB 3200/14
Storage: Samsung - 850 EVO-Series 500GB 2.5" Solid State Drive 
Storage: Samsung - 960 EVO 500GB M.2-2280 Solid State Drive
Storage: Western Digital - Blue 2TB 3.5" 5400RPM Internal Hard Drive
Storage: Western Digital - BLACK SERIES 3TB 3.5" 7200RPM Internal Hard Drive
Video Card: EVGA - 970 SSC ACX (1080 is in RMA)
Case: Fractal Design - Define R5 w/Window (Black) ATX Mid Tower Case
Power Supply: EVGA - SuperNOVA P2 750W with CableMod blue/black Pro Series
Optical Drive: LG - WH16NS40 Blu-Ray/DVD/CD Writer 
Operating System: Microsoft - Windows 10 Pro OEM 64-bit and Linux Mint Serena
Keyboard: Logitech - G910 Orion Spectrum RGB Wired Gaming Keyboard
Mouse: Logitech - G502 Wired Optical Mouse
Headphones: Logitech - G430 7.1 Channel  Headset
Speakers: Logitech - Z506 155W 5.1ch Speakers

 

Link to comment
Share on other sites

Link to post
Share on other sites

everyone always has the own idea on what programming language is the best and what you should learn but its pretty much just what ever clicks for you in general learning you want a to know a scripting language so something like ruby lua python  C if your interested in microcontrollers and embedded programming  an object oriented programming language like java is also good than a few web languages css html node.js java script and you may want to try a functional programming language  like lisp or scala though there are many others. pretty much its try a few a lot of skills transfer in between. i personally really like python since i hate punctuation and semicolons and always indented my code anyways. but one of my friends hates python and due to the lack of semicolons Pretty much try shit find what you like and use it .if any way starts talking shit like oh you're not a good programmer unless you program in x language call him a ass hole and walk away

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, FactoryNew said:

Afternoon everyone 

 

I want to get into programming after a recent science project working with an Arduino. 

 

I read some articles that suggested I learn C#, C++ and Java. 

Some people also recommended that for a quicker results Python and Ruby were recommended. 

I have started to learn HTML on Code Academy. 

 

I am looking for feedback and ideas on what I should learn first, also please recommend interesting and fun projects that I can do to learn and get into coding even more. 

 

 

first you should decide what area you want to focus on. Windows applications, cross platform, web applications, web sites, command line tool.

 

from there you can learn the right language.

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

If I had to start again, I would go with C++ again. Because you can start with really basic concepts and introduce more complex constructs when you need them. If you want something done, you have to write it down yourself.

In Python you can use some cool concepts that do a lot of things at once. While this is pretty awesome, if you just want to get your program running without a lot of work, it isn't the best for learning (imo).

 

All this assumes you want to learn just for knowing stuff. If you have a specific application or a job in mind, you should tell us. As others said, some fields require specific languages, which aren't bad to start with either.

 

Btw.: I never learned html and css and never needed to. If I want a website, I go to squarespace or others and let them do the work ;)

Ryzen 5 5600, 32GB DDR4, GTX 3070Ti, Acer Predator x34

InWin 901

Link to comment
Share on other sites

Link to post
Share on other sites

26 minutes ago, FactoryNew said:

Afternoon everyone 

 

I want to get into programming after a recent science project working with an Arduino. 

 

I read some articles that suggested I learn C#, C++ and Java. 

Some people also recommended that for a quicker results Python and Ruby were recommended. 

I have started to learn HTML on Code Academy. 

 

I am looking for feedback and ideas on what I should learn first, also please recommend interesting and fun projects that I can do to learn and get into coding even more. 

 

 

The first language I learned was python. I recommend this for multiple reasons:

1. It can be used for OS based programs

2. It can be used for website based programs (through cgi-scripts)

3. White space mattering leads to much easier to read code

4. The skills transfer to other code, because it can be OOP as well as regular code.

 

I recommend Code Academy for learning Python, as well as other languages.

 

A cool project you could code after learning HTML and Python is a web based slideshow that has the python run on a local server, and have images emailed to an account (using the Gmail api) be uploaded automatically to the slideshow.,

Was I helpful? Accept my answer or agree / mark me as informative!

Quote me, or I probably won't notice you responded to me!

Only Constructive Criticism is taken into consideration. 

 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, azb_ said:

The first language I learned was python. I recommend this for multiple reasons:

1. It can be used for OS based programs

2. It can be used for website based programs (through cgi-scripts)

3. White space mattering leads to much easier to read code

4. The skills transfer to other code, because it can be OOP as well as regular code.

 

I recommend Code Academy for learning Python, as well as other languages.

 

A cool project you could code after learning HTML and Python is a web based slideshow that has the python run on a local server, and have images emailed to an account (using the Gmail api) be uploaded automatically to the slideshow.,

If you're after python https://learnpythonthehardway.org/ is a much better website and will cover not only the basics but also how to correctly set up project folders and nose tests.

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, ARikozuM said:

Programming must choose you before you can continue.

 

Edit: Honestly, best thing to do would be to start programming in C# or C++. Java is slowly being phased out as the backwards compatibility slows it down tremendously. Python would be a great choice as well.

@FactoryNew

No its not.

 

It keeps things clear and slow. Java is a great first language to learn.

Link to comment
Share on other sites

Link to post
Share on other sites

7 hours ago, WaxyMaxy said:

No its not.

 

It keeps things clear and slow. Java is a great first language to learn.

I didn't say it wasn't. Everything in my edit is what I would recommend.

Cor Caeruleus Reborn v6

Spoiler

CPU: Intel - Core i7-8700K

CPU Cooler: be quiet! - PURE ROCK 
Thermal Compound: Arctic Silver - 5 High-Density Polysynthetic Silver 3.5g Thermal Paste 
Motherboard: ASRock Z370 Extreme4
Memory: G.Skill TridentZ RGB 2x8GB 3200/14
Storage: Samsung - 850 EVO-Series 500GB 2.5" Solid State Drive 
Storage: Samsung - 960 EVO 500GB M.2-2280 Solid State Drive
Storage: Western Digital - Blue 2TB 3.5" 5400RPM Internal Hard Drive
Storage: Western Digital - BLACK SERIES 3TB 3.5" 7200RPM Internal Hard Drive
Video Card: EVGA - 970 SSC ACX (1080 is in RMA)
Case: Fractal Design - Define R5 w/Window (Black) ATX Mid Tower Case
Power Supply: EVGA - SuperNOVA P2 750W with CableMod blue/black Pro Series
Optical Drive: LG - WH16NS40 Blu-Ray/DVD/CD Writer 
Operating System: Microsoft - Windows 10 Pro OEM 64-bit and Linux Mint Serena
Keyboard: Logitech - G910 Orion Spectrum RGB Wired Gaming Keyboard
Mouse: Logitech - G502 Wired Optical Mouse
Headphones: Logitech - G430 7.1 Channel  Headset
Speakers: Logitech - Z506 155W 5.1ch Speakers

 

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, ARikozuM said:

I didn't say it wasn't. Everything in my edit is what I would recommend.

"Java is slowly being phased out as the backwards compatibility slows it down tremendously."

 

Java isn't "being phased out" and its not slow to execute, its actually a pretty quick language compared to other modern languages with similar creature comforts.

 

Java will never be "phased out" for being too slow. because 1) its not very slow. 2) being fast or slow has very little to do with how common or widespread a language is unless its extremely slow to the point of uselessness.

 

https://benchmarksgame.alioth.debian.org/u64q/python.html

 

You can see that with most common algorithms Java is between 3 and 50 times faster than Python, and yet no one talks about how Python is dead, because not all aspects of programming are performance critical.

 

Speed/ease of development, rate of bugs, difficulty of multi-platform releases, install base, etc. are all just as important indicators of a languages viability and Java does really well at all of them.

Link to comment
Share on other sites

Link to post
Share on other sites

More importantly than just picking a language is understanding how programming works in general. If you understand the base concepts of programming and how computers work, you can usually pick up most programming languages right away. So I would get a higher level overview of how computers work in addition to learning about a language.

 

How should I put it?... It's like making sure you know how a car works in general before trying to get into wrenching at a particular make and model.

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, M.Yurizaki said:

More importantly than just picking a language is understanding how programming works in general. If you understand the base concepts of programming and how computers work, you can usually pick up most programming languages right away. So I would get a higher level overview of how computers work in addition to learning about a language.

The above is absolutely true.  While their are some weirdness's that will mess with your noodle when it comes to languages with pointers (C/C++) and other things, most of the languages people will recommend (C#, Java, PHP, Perl, Python, whatever) are extremely similar in structure, and once you're properly competent in one language, moving between languages should be relatively 'easy'.

 

Biggest bit of advice I can give though, is have an idea for a small-ish project you really want to do and find the cheapest way to do that.  Here cheap means learning overhead as well as cost.  If breeding birds is your thing, design a database to track parentage and stuff, if physics floats your boat, do a 2 body simulator, if you get a kick out of understanding the basics or the internet write a chat program.

 

So if it's not highly complex, but needs some UI - HTML/JavaScript is fine. 

If you need more structured back end stuff, try php or c# - both have a huge amount of low end jobs available if a career is your goal and you can migrate upwards fairly easily if you have any aptitude at all.

 

Whatever you choose, your first programs will be awful!  Even 2 or 3 programs later you'll look back and want to rewrite them.  Just try not to become a 'stack overflow developer' who just cut and pastes solutions from the internet.  That's fine when you're stuck on something, but don't let it erode your own ability to problem solve and think!

 

I'd personally stay away from JavaScript for complex programming until you have more experience with project planning and design, some of the structures can be somewhat... confusing.

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/13/2016 at 7:03 AM, vorticalbox said:

first you should decide what area you want to focus on. Windows applications, cross platform, web applications, web sites, command line tool.

 

from there you can learn the right language.

^ This, pretty much.

Decide on what project you'd like to do or as the above said, what general area you would like to focus on.

Example, I choose to focus on games, which for the most part demand the knowledge of either c++ or c# since that's where most of the jobs are. That said, you can make games in a bunch of different languages, but the approach to coding a game vs windows applications vs web apps is quite different.

CPU - Ryzen 7 3700X | RAM - 64 GB DDR4 3200MHz | GPU - Nvidia GTX 1660 ti | MOBO -  MSI B550 Gaming Plus

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, saitir said:

Just try not to become a 'stack overflow developer' who just cut and pastes solutions from the internet.

This is for the OP, but this is why it's important to understand how programming works. If you copy and paste code without taking the time to learn how it works, you can the edit it with confidence, rather than be like throwing darts at a dart board with a blindfold and hope you get something to work.

 

I've seen this way too many times with people who try out HTML and CSS. I recalled a friend of my saying to another while they were editing some HTML and CSS "this is a problem only I can fix"... but I saw their code. It was a bloody horrible mess of in-line styling and a mish-mash of crap that made little sense (I also continue to see this on places where users can submit their own HTML/CSS).

Link to comment
Share on other sites

Link to post
Share on other sites

If you decide to start with Python, beware:
You should make yourself pay very close attention to what datatype you are dealing with - at all times. 
 

I started out with Java years back, and am currently doing a course in my MSci CS-degree that is in Python. It is a nightmare not being able to control my datatypes manually, and all I can think of are the poor poor people who start out with Python and then moves on to a lower-higher programming language where you are not carried through as much as you are in Python. 

Running Arch with i3-gaps on a Thinkpad X1 Extreme
Data Science Postgrad

 

Link to comment
Share on other sites

Link to post
Share on other sites

7 hours ago, Claryn said:

If you decide to start with Python, beware:
You should make yourself pay very close attention to what datatype you are dealing with - at all times. 
 

I started out with Java years back, and am currently doing a course in my MSci CS-degree that is in Python. It is a nightmare not being able to control my datatypes manually, and all I can think of are the poor poor people who start out with Python and then moves on to a lower-higher programming language where you are not carried through as much as you are in Python. 

you could create a package that checks data types but yeah it can make debugging a right pain. Though python errors are actually very descriptive and it even gives you a point to where the code failed.

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/13/2016 at 9:57 AM, ARikozuM said:

Programming must choose you before you can continue.

 

Edit: Honestly, best thing to do would be to start programming in C# or C++. Java is slowly being phased out as the backwards compatibility slows it down tremendously. Python would be a great choice as well.

@FactoryNew

Java while I no longer use it day to day in my job. Is not slow at all. Especially with Java 8 and the introduction of more functional programming methods. It's become quite fast and easy for a beginner to learn. Its uses are also tremendous, you can use it to make GUI desktop applications, back end for websites with JSP, native Android is written in Java. Not sure how much experience you have with this field but ti doesn't seem like much.

Link to comment
Share on other sites

Link to post
Share on other sites

59 minutes ago, leobeosab said:

Java while I no longer use it day to day in my job. Is not slow at all. Especially with Java 8 and the introduction of more functional programming methods. It's become quite fast and easy for a beginner to learn. Its uses are also tremendous, you can use it to make GUI desktop applications, back end for websites with JSP, native Android is written in Java. Not sure how much experience you have with this field but ti doesn't seem like much.

I agree and that's why I recommended it. Before I changed course in high-school for medicine in 2008, Java was seen as a good language to learn but was slowly being phased out in favor of other common languages dealing in similar aspects for desktop but was kicking stronger than ever in the new smartphone market.

Cor Caeruleus Reborn v6

Spoiler

CPU: Intel - Core i7-8700K

CPU Cooler: be quiet! - PURE ROCK 
Thermal Compound: Arctic Silver - 5 High-Density Polysynthetic Silver 3.5g Thermal Paste 
Motherboard: ASRock Z370 Extreme4
Memory: G.Skill TridentZ RGB 2x8GB 3200/14
Storage: Samsung - 850 EVO-Series 500GB 2.5" Solid State Drive 
Storage: Samsung - 960 EVO 500GB M.2-2280 Solid State Drive
Storage: Western Digital - Blue 2TB 3.5" 5400RPM Internal Hard Drive
Storage: Western Digital - BLACK SERIES 3TB 3.5" 7200RPM Internal Hard Drive
Video Card: EVGA - 970 SSC ACX (1080 is in RMA)
Case: Fractal Design - Define R5 w/Window (Black) ATX Mid Tower Case
Power Supply: EVGA - SuperNOVA P2 750W with CableMod blue/black Pro Series
Optical Drive: LG - WH16NS40 Blu-Ray/DVD/CD Writer 
Operating System: Microsoft - Windows 10 Pro OEM 64-bit and Linux Mint Serena
Keyboard: Logitech - G910 Orion Spectrum RGB Wired Gaming Keyboard
Mouse: Logitech - G502 Wired Optical Mouse
Headphones: Logitech - G430 7.1 Channel  Headset
Speakers: Logitech - Z506 155W 5.1ch Speakers

 

Link to comment
Share on other sites

Link to post
Share on other sites

I'm currently Studying Informatic Engineering, and I think the approach my Uni is quite good. 

 

First, you could start with something basic, like Python. If you search online for some python exercises, I'm sure you'll find a lot of fun challenges. After you know some of the basics, you could try C (make sure you make well structured programs (ex: declaring all variables and stuff before you get to the logic part of it), and the most "reusable", before jumping into java. Java doesn't require you to declare any variable in the beggining, and you can get pretty bad habits from it (IMO, please don't kill me if your opinion differs). After that, you can pretty much do anything you want (assuming you know how everything works), since some programming languages are quite similar on how they work (ex: java and C) and even though they aren't the same, you can get used to the other quite easily.

 

TL:DR -> Learn to structure your code properly, start with the basics and work your way up. Plenty of tutorials online, so it shouldn't be too hard. 

 

Always remember that you're "coding for others, not yourself". In other words, try to make the code as clean and pleasant to read as possible!

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/20/2016 at 6:56 PM, ARikozuM said:

I agree and that's why I recommended it. Before I changed course in high-school for medicine in 2008, Java was seen as a good language to learn but was slowly being phased out in favor of other common languages dealing in similar aspects for desktop but was kicking stronger than ever in the new smartphone market.

Okay, see I thought you had meant it was being phased out for everything. Yes in that time and now it's being used less and less for desktop applications unless it's software for a large company. Mostly just used for Android apps and Java Server Pages now with Spring. 

Link to comment
Share on other sites

Link to post
Share on other sites

Concepts are key. Languages come and go, but the core concepts generally stay the same and paradigms have some longevity to them. The way I learned programming, I didn't even start writing code until 6 months in (I went to a vocational school for computer programming) and I'd say it really helped. I had all of the concepts drilled into my head, so I could already devise solutions to problems without even having to know any programming language. From there all I had to learn was the syntax of the language I wanted to program in and I was gold. I suggest the CS50 course by Harvard online.

 

C# will be a highly relevant language if you are looking to develop for Windows. Python will be good for backend and scripting utilities. C if you have a highly logical mind and want to work closer to the machine.

CPU: i7-4790 GPU: R9 Nitro Fury Tri-X RAM: 16GB @ 1600MHz | SSD: 480GB PNY PSU: EVGA 850BQ

Jr. Systems Administrator

 

 

A SysAdmin's Haiku:

It's not DNS

There's no way it's DNS

It was DNS

Link to comment
Share on other sites

Link to post
Share on other sites

Anyone starting should learn Python. Languages come and go, and so will Python one day, but his syntax enforces good habbits, which are usefull in any language. C (and it's derivates) are not a bad option either, but the demand for lower level languages is diminishing while high level languages are growing in use cases

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/14/2016 at 9:49 PM, saitir said:

I'd personally stay away from JavaScript for complex programming until you have more experience with project planning and design, some of the structures can be somewhat... confusing.

I'd personally stay away from JavaScript completely unless there was no other choice as it's an awful awful awful language.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, geo3 said:

I'd personally stay away from JavaScript completely unless there was no other choice as it's an awful awful awful language.

Well I do completely agree with that, except that it's becoming more and more difficult to avoid javascript at some point of a programming career these days. From a mixture of management assumption, to growing number of nodejs and similar javascript server backends, plus more and more desktop and mobile apps being written in some form of js & html before converting and on and on... Plus there's a losing battle for people who know how to work with javascript vs people who only know how to use their favourite set of js libraries.

So yeah, avoid javascript as long as you can, but I don't think it will be forever...

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, saitir said:

Well I do completely agree with that, except that it's becoming more and more difficult to avoid javascript at some point of a programming career these days. From a mixture of management assumption, to growing number of nodejs and similar javascript server backends, plus more and more desktop and mobile apps being written in some form of js & html before converting and on and on... Plus there's a losing battle for people who know how to work with javascript vs people who only know how to use their favourite set of js libraries.

So yeah, avoid javascript as long as you can, but I don't think it will be forever...

Yup. I unfortunately am forced to interact with it for both server back-end stuff and several webapps at my work. Personally I find the server side JS far more tolerable than JS indented to run in a browser. 

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

×