Does anybody know of a good resource to learn stuff like C++? Since im poor i need it to be free. Also does anybody recommend a IDE to code it on?
Thanks
Does anybody know of a good resource to learn stuff like C++? Since im poor i need it to be free. Also does anybody recommend a IDE to code it on?
Thanks
Check out udacity, edx, and coursera. Take an online course. You'll learn a lot.
You don't need an IDE. Text editor and the terminal. I like Sublime Text.
Hope this helps.
Thanks
If you reaaaly want a free IDE, CodeBlocks does it's job somewhat. But it's best to stick to something like Atom or Sublime and the terminal, those editors are extremely customizable. There is a seriously great non-free IDE - Clion, but if you're a student and your institution of study (assuming you're studying somewhere) is enrolled with Jetbrains discounts, you can have it for free.
Is this for hobby coding or are you already a programmer?
If you're anything like I was at the ripe age of 13 I'm gonna recommend something like Python with Notepad++ entirely instead of C++.
Not that you asked, but if someone would have told me that at that age I would probably be living an entirely different life right now. Granted I'm pretty happy with the one I have now too, but just sayin'. Would've made coding a fuckload easier on me.
If none of that applies to you then disregard everything I said and go with Code::blocks like everyone else is saying. Or go without it, up to you.
hobby coding sorta. used batch in the past. but want to learn something else.
Yeah, my recommendation is to say fuck C++ and just go with python. Way easier, way higher level, and if you really want to you can always go on to C++ afterwards.
If you want a really good tutorial to dive into with, then I recommend the aptly named Dive Into Python: http://www.diveintopython.net/
If you just want a simple scripting language to make your life easier than you're gonna get the job done a lot quicker with python and with way less headache imo. You don't really need C++ unless you actually need the extra nit and grit that it provides.
It's really great that you asked that question @GrooveMastaPutz , I hadn't thought about that.
Listen, @Dje4321, C++ is a hard beast to swallow, I would not recommend it as a first language (where I live schools are actually teaching C++ as a first language now, and w/o the object oriented part, what's even the point lol). Though I would not discourage you if you really want to dive into the low level "manual" work with the memory (even though modern C++ builds a lot upon these things, it makes it even a harder language to pick up without pror experience). The low level stuff is fun for me, but it's agonizing for some people and slows down development extremely if simple applications is all you want to write, but if you want to dabble anyway you better learn C, it will be much easier to learn. Otherwise, Python is an excellent language to learn, I use it all the time if I want to script something more serious than it's worth it on bash.
I highly recommend learning C. It teaches you a lot about computers and is very easy to start. If you then really want to learn something else, you can still learn C++ and therefore code C/C++ or go with a more abstract language like JavaScript or Python - I would not recommend any Java stuff; the entire JVM platform is just stupid as fuck.
any place to learn something like C at? preferably offline to learn on the go
Online:
Programming tutorial: http://www.tutorialspoint.com/cprogramming/index.htm
Reference for functions of the standard library: http://www.tutorialspoint.com/c_standard_library/index.htm
Offline:
You could get a book.
The C section is really outdated. There is no reference to C11, the newest version of the last book costs ca. $100 and only covers C99. I like Brian W. Kernighan and Dennis M. Ritchie: The C programming language but I really don't think it is a good resource for a beginner to get start with C programming nowadays - it is a nice addition. This book is quite good but really old. It uses old (long long deprecated) syntax. I have it. This + tutorialspoint + a small German book, I bought at first have made me a C programmer - this and a lot of practicing.
Tutorialspoint is full of mistakes, so many that is impossible to enumerate them.
@Dje4321 do your self a favor and avoid it.
That being said http://iso-9899.info/wiki/Books contains a good list of C Books for every level and need. If you can't buy any book, it's fine there's a "free" section. http://iso-9899.info/wiki/Books#Free_books
Stuff to avoid: http://iso-9899.info/wiki/Main_Page#Stuff_that_should_be_avoided
@Dje4321 I now went through the entire C programming tutorial again. It is totally fine for a beginner. There are mistakes in other tutorials, yes. But the C tutorial is fine. And therefore I can still recommend it. Maybe there are one or two flaws but nothing you should worry about too much.
@spidernet Don't try to scare people away from anything you don't know. iso-8999.info is pretty useless nowadays. There is more useful information available on Wikipedia than on that thing: https://en.wikipedia.org/wiki/C_%28programming_language%29
I do know tutorialspoint, it doesn't go that deep beneth the surface of C, fails to explain undefined and implementation dependent behaviours that may occur by blindly using functions that are not fully understood, just to name one. Pretty lackluster if you ask me, leaves a lot to be desired and might enforce bad/wrong habits.
How's TP's syntax better than K&R2?
That says a lot...
You must have learned C from and only from TP (tutorialspoint) then.
Getting the surface is totally enough for the first few weeks. The standard is pretty irrelevant. Embedded systems don't care and GNU extensions don't either. The syntax of C is used but not the standard. Most C programmers have never taken a look at the specification. K&R is not good for beginners - it is from 1988, the C99 standard and C11 is missing. So if you are after the standard you can call it outdated. Also most compilers implement almost everything but don't use the standard by default. With gcc you have to use --pendatic or --pendatic-erros and specify the type of standard you want, to make it compile to ISO C. If the standard was THAT relevant, that wouldn't have happened. By default it uses GNU C - and that is totally enough for a beginner. Also the Linux kernel doesn't care about the standard. It makes excessive use of GNU extensions. C is great because of it's simply syntax, portability and hardware access - not because of it's specification and the poor standard library. If you have ever done some enterprise grade programming using .NET or Java, the standard library looks like the first attempt of a beginner to create an API.
No. I have a few books but TP was a great point to get started. iso8999 is totally obsolete. Given the number of C programmers - which is pretty high and compared to their active IRC numbers, it just doesn't matter anymore. I don't know how things are in other countries, but here in Germany you can walk into any book store selling books about programming and find at least one decent book about C.
I agree that for anything that it's not the mainstream x86 architecture, the standard doesn't matter THAT much, it still does. And in some situation, like in high integrity and safety critical system the use of some standard functions is forbidden (see MISRA C and similar guidelines). Or when you have a crosscompiler that it's not even C99 compliant (and most of them aren't).
But in some situations the standard is all you have.
A good number (if not most) of C programmers don't write software for the mainstream platform, so GCC and GNU C is not relevant, hence it's important to know what is implementation dependent and what not. You might argue that a beginner doesn't need to know that, but it makes sure that the beginner is aware of what might/will happen with a different implementation. And that solves a lot of issues one might have later on.
Point is for beginners, even if it might not be relevant it's still useful to refer to the standard, because that can shed some light in some dark areas that weren't explained so well in books.
I was not refering to the standard, but to the content the webpage holds. The books in particular, they are really good, some might be old, but there's been a lack of good C books lately.
I may have sounded like a dick, but when it comes to C, there are a lot of people that have no clue what they're doing and think that they're doing the right thing, but when things go south they don't even know why and where. So better to be safe than sorry and learn with the correct mindset.
Thanks God I ditched it pretty quickly.
I have seen people who wanted to explain C and then ended up explaining all kinds of stuff that doesn't matter to a beginner. A beginner wants to get started and dig into the stuff later. Maybe it makes sense to TP to add some boxes which optionally explain stuff from the standard but it should not be "In your face!" for a beginner. Too much complexity within the first weeks of programming can scare people away from programming.
I mean seriously, I was coming from Java EE, having JUnit, Maven, JSP, Servlets, REST, BDD, Continuous Integration, hundreds over over-engineered complex APIs to do all kinds of weird stuff and then you look at the C standard library, makefiles and some small unit test frameworks - it was shocking. :D
Oh yes. That's why I don't use C++ although I know the language - the community is even worse than the C community.
Also today was really not my day. Normally I am not writing so aggressively.
In Conclusion:
@Dje4321 start learning C on TP or get a decent book from iso8999.info and if you feel comfortable doing that stuff, try to dig deeper into the whole programming thing by looking at the standard, architecture specific stuff or operating system programming - kernel interfaces, ELF etc. If you then feel that this is getting to complicated for you and you are more the kind of person who wants to do more abstract stuff, Python and JavaScript (especially NodeJS - huge community, and a lot of great modules) are great options to get rid off the low level stuff and get some cool stuff ready. If you are into Games, C# is used by Unity Engine and C++ by Unreal Engine. If you really want to go deep into architectures and assembly, NASM, gcc and ld are great tools to write x86 assembly on Linux. Windows has MASM. Also sorry for our "little" discussion here, but as you'll find out soon, sometimes programmers get a bit religious about programming...
Of course, I'd also suggest that whoever was the genius who thought it
was a good idea to read things ONE F*CKING BYTE AT A TIME with system
calls for each byte should be retroactively aborted. Who the f*ck does
idiotic things like that? How did they noty die as babies, considering
that they were likely too stupid to find a tit to suck on?
-- Linus Torvalds
https://en.wikiquote.org/wiki/Linus_Torvalds
Peace!
I would just dive right in with Java. You should install the java 8 sdk or if you are using linux you should have the open source version. After that install Eclipse and look up examples like for example how to make a simple class and then look up iteration, then recursion and then dive into deeper data structures and JUnit for testing.