Jump to content

Place to start proper programming?

Hi! I've been searching the internet for places to learn programming and what languages to actually learn. I haven't obtained a definite answer because there isn't one from what I've seen. From what I've learned it's all based on what you plan on doing and what your goals are. (correct me if I'm wrong) I've looked at many forums to find many answers to where I should learn from. Some give me specific websites and others recommend actual books. I've decided to pick up html/css (it seems they're not actual programming languages from what others have told me) to try my hand at web development to see if I would actually enjoy writing some form of code. I do enjoy it quite a lot but I've been using code academy to learn and while I do understand some fundamentals I don't fully understand everything due to the little information given. If any of you have any tips or sites that I could try let me know because I'm quite confused. From what I've learned the c family is very popular and can be used for just about anything so my goal would be to learn one of the c languages after I learn something more forgiving. Thank you very much! 

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, spiralfuzion said:

Hi! I've been searching the internet for places to learn programming and what languages to actually learn. I haven't obtained a definite answer because there isn't one from what I've seen. From what I've learned it's all based on what you plan on doing and what your goals are. (correct me if I'm wrong) I've looked at many forums to find many answers to where I should learn from. Some give me specific websites and others recommend actual books. I've decided to pick up html/css (it seems they're not actual programming languages from what others have told me) to try my hand at web development to see if I would actually enjoy writing some form of code. I do enjoy it quite a lot but I've been using code academy to learn and while I do understand some fundamentals I don't fully understand everything due to the little information given. If any of you have any tips or sites that I could try let me know because I'm quite confused. From what I've learned the c family is very popular and can be used for just about anything so my goal would be to learn one of the c languages after I learn something more forgiving. Thank you very much! 

C is a true middle ground for most things, but it is best suited for programming more at a machine level. You say you'd like to do web development, so I'd recommend Javascript. One of the most popular languages for that purpose.

i7 6700K @ Stock (Yes I know) ~~~ Corsair H80i GT ~~~ GIGABYTE G1 Gaming Z170X Gaming 7 ~~~ G. Skill Ripjaws V 2x8GB DDR4-2800 ~~~ EVGA ACX 3.0 GTX 1080 SC @ 2GHz ~~~ EVGA P2 850W 80+ Platinum ~~~ Samsung 850 EVO 500GB ~~~ Crucial MX200 250GB ~~~ Crucial M500 240GB ~~~ Phanteks Enthoo Luxe

Link to comment
Share on other sites

Link to post
Share on other sites

If you want to do web development I would recommend getting Visual Studio Community Edition (free version of visual studio)  and learn MVC.  It's all baked in to Visual Studio which by itself offers many great tools.

Link to comment
Share on other sites

Link to post
Share on other sites

26 minutes ago, Noirgheos said:

C is a true middle ground for most things, but it is best suited for programming more at a machine level. You say you'd like to do web development, so I'd recommend Javascript. One of the most popular languages for that purpose.

also add that learning s frame work like angularJS and back stuff such as php

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

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Ganz said:

If you want to do web development I would recommend getting Visual Studio Community Edition (free version of visual studio)  and learn MVC.  It's all baked in to Visual Studio which by itself offers many great tools.

is there any difference between that and enterprise and the various other versions of visual studio?

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, spiralfuzion said:

is there any difference between that and enterprise and the various other versions of visual studio?

First, note that these tools are not required for all web development. They are recommend for ASP.NET development though which is a .NET web framework. If you're not familiar with the differences between client side vs server side web development and don't know what web frameworks are, then learning a bit about that stuff first may help.

 

Now, onto your specific question.

 

Here is the feature comparison list for the different versions of Visual Studio 2017 (Community, Professional, and Enterprise). Community and Professional are almost identical in features and Enterprise gives you some extra stuff. Note that these are all Windows Only but there is a Visual Studio for Mac version.

 

Community is free (see the bottom of this page for usage/license information). Professional and Enterprise will cost you money but can be used in situations that the free Community edition doesn't allow.

 

Visual Studio Code is a separate product, not a version of the above Visual Studio 2017 products. VS Code is basically a more lightweight, cross platform, text editor with some extra programming features. See their faq for more info.

 

You may want to install both VS 2017 and VS Code and try them both out. You may find you prefer one over the other, or you may like both and prefer to use them for different things. It's probably easier to start doing most things with VS 2017 though, because it takes care of a lot of things for you.

Link to comment
Share on other sites

Link to post
Share on other sites

21 minutes ago, madknight3 said:

First, note that these tools are not required for all web development. They are recommend for ASP.NET development though which is a .NET web framework. If you're not familiar with the differences between client side vs server side web development and don't know what web frameworks are, then learning a bit about that stuff first may help.

 

Now, onto your specific question.

 

Here is the feature comparison list for the different versions of Visual Studio 2017 (Community, Professional, and Enterprise). Community and Professional are almost identical in features and Enterprise gives you some extra stuff. Note that these are all Windows Only but there is a Visual Studio for Mac version.

 

Community is free (see the bottom of this page for usage/license information). Professional and Enterprise will cost you money but can be used in situations that the free Community edition doesn't allow.

 

Visual Studio Code is a separate product, not a version of the above Visual Studio 2017 products. VS Code is basically a more lightweight, cross platform, text editor with some extra programming features. See their faq for more info.

 

You may want to install both VS 2017 and VS Code and try them both out. You may find you prefer one over the other, or you may like both and prefer to use them for different things. It's probably easier to start doing most things with VS 2017 though, because it takes care of a lot of things for you.

 

4 hours ago, vorticalbox said:

also add that learning s frame work like angularJS and back stuff such as php

 

5 hours ago, Ganz said:

If you want to do web development I would recommend getting Visual Studio Community Edition (free version of visual studio)  and learn MVC.  It's all baked in to Visual Studio which by itself offers many great tools.

 

5 hours ago, Noirgheos said:

C is a true middle ground for most things, but it is best suited for programming more at a machine level. You say you'd like to do web development, so I'd recommend Javascript. One of the most popular languages for that purpose.

Thanks!  I'm very excited to learn different languages! Any recommendations on where to learn them or sources for definitions and terms? I'm very interested in the c family because of how much can be accomplished and a lot of the things I'm interested in are written one of the c languages. I do know that it isn't very forgiving and isn't the best to start out with but I will keep that in my future. The only reason I'm interested in web development is because I get more immediate results. That's why I'm learning html/css and am halfway through the course. (learning about div atm) From what I've seen java-script is essential for web development and all the behind the scenes stuff. Is it worth learning or should i move to the c family? 

Link to comment
Share on other sites

Link to post
Share on other sites

Also what programming forums should i visit for more info and help?

Link to comment
Share on other sites

Link to post
Share on other sites

30 minutes ago, spiralfuzion said:

Also what programming forums should i visit for more info and help?

Stack Overflow is always there. Honestly, if you want to learn C, you should do some flowcharting. Do you have a basic understanding of logic?

i7 6700K @ Stock (Yes I know) ~~~ Corsair H80i GT ~~~ GIGABYTE G1 Gaming Z170X Gaming 7 ~~~ G. Skill Ripjaws V 2x8GB DDR4-2800 ~~~ EVGA ACX 3.0 GTX 1080 SC @ 2GHz ~~~ EVGA P2 850W 80+ Platinum ~~~ Samsung 850 EVO 500GB ~~~ Crucial MX200 250GB ~~~ Crucial M500 240GB ~~~ Phanteks Enthoo Luxe

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, Noirgheos said:

Stack Overflow is always there. Honestly, if you want to learn C, you should do some flowcharting. Do you have a basic understanding of logic?

I'm as beginner as can get when it comes to programming. Although I am halfway through a course for html/css on code academy but that's about it. I guess I'll figure out what I truly want on my way there. 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, spiralfuzion said:

I'm as beginner as can get when it comes to programming. Although I am halfway through a course for html/css on code academy but that's about it. I guess I'll figure out what I truly want on my way there. 

If you'd like, I could intro you to flowcharting to help you understand the logic behind C. I could also do some Assembly with you, and if you're able to understand that, C should be no issue. They follow much the same logic.

i7 6700K @ Stock (Yes I know) ~~~ Corsair H80i GT ~~~ GIGABYTE G1 Gaming Z170X Gaming 7 ~~~ G. Skill Ripjaws V 2x8GB DDR4-2800 ~~~ EVGA ACX 3.0 GTX 1080 SC @ 2GHz ~~~ EVGA P2 850W 80+ Platinum ~~~ Samsung 850 EVO 500GB ~~~ Crucial MX200 250GB ~~~ Crucial M500 240GB ~~~ Phanteks Enthoo Luxe

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Noirgheos said:

If you'd like, I could intro you to flowcharting to help you understand the logic behind C. I could also do some Assembly with you, and if you're able to understand that, C should be no issue. They follow much the same logic.

That sounds like a lot of fun! Any help like that would be appreciated. There are terms that I don't fully understand like logic for instance. If there are good repositories for programming terms let me know. Or if there are websites that I should often visit to help me out.  

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, spiralfuzion said:

That sounds like a lot of fun! Any help like that would be appreciated. There are terms that I don't fully understand like logic for instance. If there are good repositories for programming terms let me know. Or if there are websites that I should often visit to help me out.  

Add me on Steam if you like, I go by the same ID as I do here. I could explain everything, as well as give you some basic problems to work out.

i7 6700K @ Stock (Yes I know) ~~~ Corsair H80i GT ~~~ GIGABYTE G1 Gaming Z170X Gaming 7 ~~~ G. Skill Ripjaws V 2x8GB DDR4-2800 ~~~ EVGA ACX 3.0 GTX 1080 SC @ 2GHz ~~~ EVGA P2 850W 80+ Platinum ~~~ Samsung 850 EVO 500GB ~~~ Crucial MX200 250GB ~~~ Crucial M500 240GB ~~~ Phanteks Enthoo Luxe

Link to comment
Share on other sites

Link to post
Share on other sites

If you want to learn how to "properly program", language doesn't really matter. What matters is how you write it. It doesn't really matter if you know C, Python, JavaScript, or whatever favorite language of the week it is. If it's poorly written, it'll be a nightmare to read and maintain.

 

So on that note, I recommend getting a book. Particularly The Art of Readable Code by Dustin Boswell. Or at the very least look up the topic online

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, spiralfuzion said:

The only reason I'm interested in web development is because I get more immediate results. That's why I'm learning html/css and am halfway through the course. (learning about div atm) From what I've seen java-script is essential for web development and all the behind the scenes stuff. Is it worth learning or should i move to the c family? 

Web development does have a fairly low barrier to entry, especially for basic GUI work. HTML, CSS, and JavaScript (usually the first three things you start with) aren't too hard to get started with. 

 

Outside of web development, most programming languages will start you off with basic command line applications. The point is to allow you to focus on learning the language without having to also learn how to work with a GUI right away.

 

Which you choose is entirely up to you. Web development is fine, however, it sounds like choosing something outside of web development is where you'd rather start.

 

Since I'm not sure exactly what kind of things you're interested in building, my general recommendation would probably be one of these (in no particular order): Python, C#, Java, C, or C++

 

Python is probably the easiest, C# and Java somewhere in the middle, and C and C++ on the more difficult side of things. However everyone's experience is different and they can all be learned as a first language so you don't have to shy away from the so called "difficult" languages if they are what interest you the most.

 

Personally I like C# the best, but it's also what I'm most familiar with so that's probably part of it at this point. In the end, I don't think it overly matters what you start with. You'll eventually learn multiple languages anyway.

Link to comment
Share on other sites

Link to post
Share on other sites

13 hours ago, madknight3 said:

Which you choose is entirely up to you. Web development is fine, however, it sounds like choosing something outside of web development is where you'd rather start.

I agree with this assumption based on the tone of your responses. I think that you need to stop fixating on the technical details quite so much and perhaps take a step back instead; ask yourself what it is that you really want to be doing and where you'd like to be doing it the most. Perhaps if you can answer those in quite a bit of detail then we may be better placed to focus on more specific prerequisites instead of going off in all sorts of different directions that are maybe not as well suited for achieving those ends as quickly.

 

The industry is quite vast after all... And all I can see right now is someone who's flailing around in the ocean...

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

If you want to understand HTML and CSS, like really understand it, here is a book I found. 

http://learn.shayhowe.com/ 

I've coded through freecodecamp's HTML and CSS section, let me tell you, this book taught me more than that. 

 

I learned C++ 1st, a few years ago. And now learning javascripts. I think that javascripts is a good start. Different people have different opinions about "which language to choose". It does not really matter at this point. 

 

There is one advise I do want to give you: I know that you are learning HTML and CSS right now, and those two arent real programming language, but do remember this:

Quote

good programming habit can benefit you in a long run. 

  1. Good indentation can help you understand code faster.
  2. Good comment can make you understand the code faster when one day you want to check out some old code you wrote. 

There are a lot of things/ rules like these two. I can't list it all. 

 

Here is a recent reddit thread I want to link to you. And I also wrote on it too. Under the name: chowchowthedog. 

 

 

And if you are learning HTML and CSS I have a good advise for you: Do your own project. It is the best way and fastest way to learn. Clone a single paged webpage of your like. Start with something simple. [Like this:](http://www.n3rdfusionstudios.com/). 

If it is not broken, let's fix till it is. 

Link to comment
Share on other sites

Link to post
Share on other sites

Also if you have any questions about HTML and CSS go to freecodecamp's forum https://forum.freecodecamp.org/ to ask people there. 

 

I ask there all the time, and people give me good answers and support.

 

If it is not broken, let's fix till it is. 

Link to comment
Share on other sites

Link to post
Share on other sites

Coding is great, trust me, when one day you really got into it, it gives you ONE MORE REASON to buy a lot of expensive hardware. 

 

 

"WHY YOU SPEND SO MUCH MONEY ON YOUR PC??" 

"Honey trust me its for work."

 

*Uses quad core i7, 32GB of ram, GTX1080Ti system for web development.

 

If it is not broken, let's fix till it is. 

Link to comment
Share on other sites

Link to post
Share on other sites

On 18.8.2017 at 8:28 PM, Noirgheos said:

C is a true middle ground for most things, but it is best suited for programming more at a machine level. 

 

http://learnbchs.org/

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, mrchow19910319 said:

Coding is great, trust me, when one day you really got into it, it gives you ONE MORE REASON to buy a lot of expensive hardware. 

 

 

"WHY YOU SPEND SO MUCH MONEY ON YOUR PC??" 

"Honey trust me its for work."

 

*Uses quad core i7, 32GB of ram, GTX1080Ti system for web development.

 

Kek, I have an 8350 and 7770 ^_^ the only thing I would upgrade is my tiny 8GB fo ram.

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

Link to comment
Share on other sites

Link to post
Share on other sites

42 minutes ago, vorticalbox said:

Kek, I have an 8350 and 7770 ^_^ the only thing I would upgrade is my tiny 8GB fo ram.

 

If it is not broken, let's fix till it is. 

Link to comment
Share on other sites

Link to post
Share on other sites

Ick! These kinds of threads are always full of misinformation, speculation and mere opinion, as opposed to fact, and it's difficult to distinguish between the two for a beginner, so... Here's everything I see wrong in this kind of thread!

From what I've learned it's all based on what you plan on doing and what your goals are.

Indeed, it isn't helpful to throw back the "how long is a piece of string?" answer. You could just as simply respond back that you want to learn "general purpose programming", which means just about every language is suitable. Here are a few languages that appear to have a secure market, meaning if you intend to be employed as a programmer, these are the ones to chase! That is: Python and Javascript. Perhaps SQL. Definitely do not bother to learn C#, C, PHP, C++, Objective-C, Java or Ruby. You'll be betting against your future, if you do...

> I've looked at many forums to find many answers to where I should learn from. Some give me specific websites and others recommend actual books.

Anybody can post onto a forum or create a website that contains absolute lies... but it takes a long time, a lot of money, time and effort to study at university, become a professor for computer studies and publish a book that gets spread around to every other university on the planet... get my drift?


You get what you pay for, and the best bang for buck is a good book. For example, I can recommend SICP because even though it teaches an almost irrelevant programming language, it teaches you how to program. Most introductory programming books don't do that so well; you need to pick up an algorithms book afterwards...

 

Actually, Scheme and JS go hand in hand with each other. The more you learn about one, the more you'll learn about the other, because putting the syntax aside they're both semantically similar... so I can highly recommend SICP as a "second pillar" for your web programming. Python works, too; it's also very similar to both of those languages!

 

A little note on the three pillars: You have procedural programming (e.g. the C family, Javascript, Python, Java, PHP, etc; basically any language where programs are organised into procedures, i.e. one step after another, and this is why some people erroneously say that C has so much in common with other languages, more on that later!)... You have functional programming (e.g. Scheme, Haskell, Lisp, F#, Idris), which many procedural languages have some elements of (e.g. anonymous functions in JS, Python, Java, PHP, C++, etc) but don't have all elements of... and you have logic-based programming, such as Prolog.

Consider trying one of each of the three pillars, perhaps even learning one of each, to exercise your brain. It's a great way to become a great programmer.

 

Object oriented programming is really just a thin, restrictive layer on top of one of the three pillars. For example, you have object oriented procedural languages like Java, object oriented function languages like Ocaml and Scala, and object oriented logic-based languages like Logtalk. Most OOP fanboys don't realise what OOP is; they idolise something they have imagined in their head and don't even know the five core principles (because they haven't read a good book about them yet)... Most of the people who have read such a book don't seem to like OOP so much any more! There is nonetheless some rationale to each of the five principles; they discourage bad code. Familiarise yourself, and make your own informed decisions...

C is a true middle ground for most things, but it is best suited for programming more at a machine level.

This hits the intended mark, which is to discourage beginners from learning a language that even experienced programmers have serious troubles with at times... but it is not entirely valid. In short, the C standard defines the standard using an abstract (i.e. fictitious, theoretical, non-realistic) machine, a concept which other languages such as Java and Javascript also use...

Where C separates itself from the others, and where it becomes troublesome for beginners, is that it allows certain aspects to inherit concrete behaviours from actual machines, and so machine dependencies may certainly pop up. These are known as "undefined" and "implementation-defined" behaviours, and are to be avoided. You can avoid them using a good book... but beware, as the wrong tutorial will cause you to tear your hair out, at some point!

Those behaviours explain why some people (erroneously) believe their assembly follows the same logic as some C code, and vice-versa... It's not uncommon for assembly programmers to completely misunderstand the concept of pointers in C, and thus create a mess of non-portable garbage which only runs on x86. If you want to write low-level code, stick to assembly...

 

Is it worth learning or should i move to the c family?

It seems as though your mind is made up, so perhaps after learning the fundamentals of procedural programming using a safer language (such as Javascript), you might want to pick up K&R2E. Don't forget to do the exercises as you stumble across them; each exercise reinforces the previous content. If you're confused, it'll show up in the exercises, and you should ask a question before moving on...

> Also what programming forums should i visit for more info and help?

As a C programmer you will be expected to read manuals before asking for help. If you don't do that, I can tell you, those in the more helpful communities (such as StackOverflow and ##C on Freenode) will shun you. The information is freely available, and rather than asking ten thousand questions it's quicker for you to just read for a week straight if necessary.

 

Also, you seem to be focusing more on who to attach to as opposed to what tools to attach to. I use valgrind when my programs are misbehaving, and yes, I do write some complex C code! See for yourself! When you get a warning or an error, your tools are probably telling you you're doing something wrong... Don't ignore your tools! At the moment, you're a beginner and they know better than you. I've seen too many people ask about "crashes" which they don't understand, when they could've just read the warning that their compiler was issuing! What a MASSIVE waste of time!

 

At times I wish I had stopped studying C and focused on learning Haskell in my youth, when I was more passionate... That's something to be wary of. Your motivation to learn new things might wither as you age, so it's important to use your smartness to move in the right direction...


On one final note, you might one day enjoy this game, which might instill some fundamental security principles into your head... ohh, and Rust! Keep an eye on that...

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

×