Do codeacademy first, watch TheNewBoston and PHPacademy (recently renamed themselves for something else) for the real basics.
Then you might want to consider to take a leap of faith into something specific and start to read up/youtube those. Later you might want to download some books for it, and pretty much thats about it. There's nothing to it, just time and being committed enough.
I failed, good luck.
Have an end goal or idea that you want to actually use the programming for, otherwise you will never actually care enough to learn anything past elementary concepts.
Anyone that has tried to learn to program and failed did so because they had no actual reason to learn other than "i want a job" or whatever.
Don't ever bother asking "which programming language should I learn?" The differences between them are meaningless to a beginner, you'll just be distracting yourself instead of actually coding. Pick a language with lots of documentation and tutorials (java, c++ and python are decent candidates). That's what matters for you right now.
Programming languages aren't like spoken languages. When you've learned one you've basically learned them all. Get used to working with the coders mindset and then you can experiment with other languages as your interests and jobs require.
It can get very, very frustrating. Learn to anticipate that frustration will come. When it does, handle it as best you can. Often, taking a break out taking to someone helps. Eventually you will learn to smile at the inevitable frustrating circumstances.
Learn several languages and mess around with a compiler language like yacc or bison and at some point you will understand that all programming languages are the same underneath it all.
Read this FREE online Git book (mostly just chapters 1-3 and chapter 6)
You can learn to use Git from the command line in literally a couple hours and won't look bad if/when an employer needs you to use Git (and yes, using a GUI application looks bad too, it's a crutch).
Put all of your projects on Github so that further down the line you will have something to show for all the challenges and practice projects that you've done.
A Github with tons of projects showcasing your abilities is a huge plus in actually getting a job. It's also necessary to know some kind of version control software to collaborate on bigger projects. tl;dr just fucking read the book.
Helping you get a job is just one of the benefits, retard. Git is useful even if you only use it for yourself or just to collaborate with other people on something. It's also useful for keeping track of your work and keeping things nicely organized.
It's a free book for free software written by the people who made linux
>implying I don't get just as many keks out of replying to you as you do by shitposting
Learn bitwise operators if you need performance.
You can modulus by powers of two by performing a logical and (& 0x03 is the same as modulus by 4)
You can multiply a number by 2 shifting bits to the left one ( << 1)
Most compilers will probably do this for you but its cool to know.
It's really a great book, I have to say of all the programming books I've read or skimmed, SICP is the most rigorous but also one of the most rewarding to get through. Lots of great insight even if you never touch Scheme again.
If you really want to get into programming, you're gonna have to read some books. Youtube and internet searches will only get you so far.
You have to get a deeper understanding of how to program in whatever language you choose, rather than googling something every time you don't understand what to do or why your program doesn't work.
The /g/entooman collection of books found in the /g/ sticky is a great free resource of helpful books. You should be able to find a book in there for whichever language you choose. I recommend you start with C or C++.
>this person created the distributed version control software known as git
>who is linus torvalds
my post (about git being made by the people who made linux) was in response to another poster who was shitposting that I was a shill for advocating that OP learn to use Git.
Simple misunderstanding m80
Who are you kidding? Every programmer is at least slightly autistic and amount of autism scales with amount of programming skill. Are you one of those python skids?
Over the years I have built up enough autism points to become a grand meister of programming and I'm enjoying every second of it.
But how many GBP do you have? Checkmate ya dip
Using functions sacrifices performance for less coding. If you put code anywhere outside of main, you're wasting stack space and making the cpu perform unnecessary operations to call functions because YOU are fuckign LAZY.
I guess I just care about the people viewing / working with my code. I'll sacrifice the "performance" loss for better readability since I'm not the only one touching the codebase.
Doing projects is always more important than reading articles or books. That doesn't mean you shouldn't read any, in fact you have to read a lot so you don't make mistakes, but you will not become a good programmer if you don't program in your free time.
Don't be afraid of writing bad code (assuming it is functionally correct) as a beginner. It's good to get experience by completing your task fully then going back to introspect the logic that you used.
1) ignore everything /g/ says, possibly including this
2) use the right language for the job. look at what other people in the field are using. look where the libraries are. use that.
3) learn by doing. use books only for reference
5) learn version control
6) learn linux
7) solving textbook-style problems is a shit way to learn to code. build a goddamn application
8) which fucking dev environment\ide\text editor you use doesn't fucking matter at any time
9) if there is a library for it, use it. all programming problems are only solved once.
10) don't write your own cryptography\login system\account system under any circumastances
there. ten commandments.
Also >>52583744 stay away from sites like HackerNews and Product Hunt. All they do is follow whatever is currently trendy. Just know your data structures and go read books on whatever field you wish to study. Anything from O'Riley Publishing is usually good.
>they had no actual reason to learn other than "i want a job" or whatever
This is why I'm getting out of school now with a BA in CS while I still have my sanity (and my credit rating). I used to love building things, but all I see anymore are C structs and kernel calls. Heck, I broke up a Linux argument the other day. That was the breaking point.
I can't wait to develop for passion again once I'm in the real world.
>Also learn math. You can't do the cool stuff without it.
On top of that, look up Dr. Steven Chu's videos on metacognition. You can't grasp advanced math concepts without knowing how to actually learn them.
>When you've learned one you've basically learned them all.
True. I'd recommend starting with Java since it holds your hand only enough to stop you from fucking up your computer. Most of everything else carries over from C/C++. Compiled language, class structure, and follows a lot of CS theory. If you can learn Java, you can learn almost everything related to programming imho tbqh familie.
>>> Less code is a better code.
Well short and sometimes obfuscated code is literally worse than Hitler.
So you gotta think a bit before doing that trade off.
More isn't always less.
Less isn't always more.
Atleast when it comes to coding.
Pick up C until you can appreciate what a pointer is and how you can allocate memory. Figure out the difference between the heap and the stack memory regions.
Unless you really enjoyed C, pick up another language like python, java or scala which lets you write a lot of code without the difficult bug hunts that C will throw in your face which you are in no way prepared for.
Ideally you should use a terminal and at least try to use vim or emacs instead of your standard language specific IDE
Never code PHP
yo boys how do i make vbscript click a fucking message box that comes out of nvidia inspector profile import?
Here's what i got, but it just opens the profile like 10 times instead of closing the popout after the first run.
Set prog = CreateObject("Wscript.Shell")
prog.Run "c:\fps.nip", 0, False
prog.AppActivate "NVIDIA Inspector"
The idea was to switch language to something more beginner friendly before the issue of strings which are a fucking pain in the ass and a minefield for beginners (and intermediates) came up.
Yeah, no beginner should have to struggle with archaic conventions like null termination and arrays that arent object with length getters etc.
Of course, everyone should try their hands at cowboy-coding in C with all sorts of risky pointer management, but it's not the sort of thing you do when you're starting out.
What are some of the best resources (i.e. books) for learning Python, Java, and C++?
Can I get that image in a higher resolution?
1. If a program works great, don't try to completely redesign it after you learn something new. Apply the newly learned skills to another program.
For example, when you learn object oriented programming, you'll be tempted to go back to things and redesign it with oop in mind.
Unless you're bored and have nothing to do.
I spent a couple weeks making a script that scrapes websites, and later I learned oop but I ain't going back to that and redoing it all when it still works fine.
>you only refactor when you learn new things
1. Complete the nand2teris course. IMHO it's a must-have introduction to anything computer related. That's the moment when you start to actually understand how a computer works, instead of learning to simply operate and sometimes fix it with experience and googling like the average Joe.
2. When you don't *exactly* understand even a single word in some tech reading, immediately go look it up. Reading technical stuff without fully understanding the terms is tiring and won't teach you anything.
3. Get a mentor if you can and do your programming with him in the vicinity and ask him when you get stuck. His ten-minute explanation can save you a week of googling and try-failing.
>c++ too complicated to start with
maybe for dumbasses like you anon
>9) if there is a library for it, use it. all programming problems are only solved once.
ehhh, I think you should at least try to understand the fundamentals of the problem before jumping to a library
the point of using a library is that the dirty work is done for you already and you have a clean high-level interface. but if you don't understand why that clean interface is necessary or useful you won't really get why you needed it anyway, and the only way to know that is to get at least a little bit into implementing it yourself.
>working in a job with other developers should be applied to babbies first steps
Everyone uses an IDE in the field too, but that doesn't mean someone should learn how to do Hello World with one.
Im taking cs110 because it counts as a math skill at my college
Its html and css. My professor has aspergers (he told the whole class and said this might make him seem mean or anti social)
For someone who has never programmed anything and knows nothing, will this be easy? Really need the credit.
I'm not any of those that you are replying to.
I have actual working experience with C++ and C (and a bunch of other languages) as I used to be both an application developer (mostly using C++) and an embedded developer (using C++ almost exclusively).
Yes, C++ has tonnes of gotchas, and to a newcomer it might be a bit overwhelming. However, if you have a fairly good knowledge of C and understand object-oriented mentality (from having used Java or C# or any other heavily object-oriented languages), C++ isn't that hard to grasp.
I mean, still you got to look out for gotchas (exception safety for example, pre-C++11 auto_ptrs, function-static variables in a multi-threaded environment, in-efficient deep copying auto-generated ctors etc)... Yes, understanding template syntax can be hell the first three hundred times you try...
As someone who has been using C++ for the last 4 years and still actively use C for some stuff (7-8 years experience in C), I will say that the higher-level features that come with C++ and its standard library alone is worth using it over C.
I mean, you have STL containers, iterators, smart pointers... These all make C++ very comfy to work with. It's definitively not a monster.
1) If you learn Java, learn C# as well. Companies are starting to use it more and more as it works well for Windows based applications.
2)Do some fucking research. Some programming languages for some projects are way different at handling and performing that project than other languages. For instance C has speed and flexibility in mind, therefor it's great for embedded systems, while something like PHP is great for Web servers.
3)Try to main in something that is easy for you to handle, does what you need it to do, but is powerful enough that it is accepted by many people so you have a job.
3)By god if the language uses a semicolon to end statements, please know how to use them and always remember how to use them. Don't know how many times I've seen a beginner flip shit because his/her thing didn't work simply because of a single semicolon.
4) Don't listen to fa/g/s, they're annoying and will try to make you follow memes or just dumb shit in general just to have "cool points" in the community. You're not cool for doing them, and you should feel bad if you do.
5)Have fun with it. If you don't have fun making shit and spending hours and hours debugging if something didn't turn out like it's supposed to, then don't even bother. It will turn into a chore and you will hate yourself.
Friendly reminder that editors that have heavy plug-in functionality such as vim, Emacs and nano can easily be turned into full-fledged IDEs with features such as compiler output parsing, code completion, easy code navigation, in-code debugger front-end etc
I primarily use c++.
It is not an small language, but you can quickly learn enough to get started within a few weeks and grow from there.
Easy doesn't mean no learning curve, it means that it is something you can learn quickly.
C and C++ are fine for a lot of tasks. I have used C++ as "C with classes" for embedded projects.
However as a beginner you need *CONCEPTS*. C++ is basically a language designed to micromanage your computer resources.
There are a lot of other paradigms in programming.
I suggest looking at sosmething like SICP to broaden you view.
>C and C++ are fine for a lot of tasks. I have used C++ as "C with classes" for embedded projects.
Using C++ as "C with classes" is a horrible misuse of C++ IMHO, but still, it is convenient sometimes. As someone quite fond of C++ I would recommend that you try to program idiomatic C++ instead, there are too many bad software projects out there that stem from the fact that people try to program C++ as if it was "C with classes"
>However as a beginner you need *CONCEPTS*
Well, there are two types of beginners. There are those that don't know programming at all, and there are those that try to learn a new language and/or new paradigm for the first time.
>C++ is basically a language designed to micromanage your computer resources.
I agree, other languages are more suitable for absolute programming beginners.
>There are a lot of other paradigms in programming.
>I suggest looking at sosmething like SICP to broaden you view.
Anon, I read SICP when I was an undergrad. First of all, C++ is a multi-paradigm language like almost all new languages. If you want pure "OOP" languages or other one-paradigm languages, you need to use archaic languages such as Simula, Smalltalk, Objective-C, ALGOL etc.
Don't assume that I haven't read SICP just because I work with C++, that's just stupid. Also, don't assume that multi-paradigm is a bad thing and that you need to stick with single-paradigms... There is a reason why C++ improved so much with the C++11 version, and that is mainly because of all the functional features that were included from boost into the new standard.
You can program pure functional in C++ if you want, or even pure object-oriented. But you generally don't want to limit yourself in this way. Generally, you want to mix and match, use the best from both the imperative world and from the functional world.
exactly why C++ is good for beginners.
You can start with writing C like applications, move on to C with classes and then learn about templates, lambda functions etc.
When you have learned to use the different paradigms within C++ you have a really broad perspective of programming in general.
it doesnt make your code better. it makes you a better coder, because you have to remember how to do things without hints, you have to understand how the language works so it doesnt have a million runtime errors, and you have to learn to structure your code so it's easy to navigate and read and you don't need gimmick tools to get around a simple text file.
ofc i know that. anyone who uses a tool like vim or emacs and doesn't realize it's half a step away from a full IDE is an idiot. i still think you're a better programmer for not implementing plugins that have those functionality even if the editor is capable of it.
what i'm objecting to isn't IDEs in general but how easy they can make things for the user. i think they offload so much of the burden of understanding the language and the code that it turns into bad programming practice
>he thinks he knows C++ because he's used it as "C with classes"
Thats a relief at least. Does it serve as any intro into further programming, like C or anything like that? Always been interested in programming, just never got around to doing any
>what i'm objecting to isn't IDEs in general but how easy they can make things for the user.
Well, as someone who does programming for a living, that's exactly what I want!
>i think they offload so much of the burden of understanding the language and the code that it turns into bad programming practice
Maybe only in the very beginning, but sooner or later, even if you've used an IDE all along, you start picking up stuff here and there about the inner workings of your language of choice. It's impossible not to do so.
I mean, at some point you will have to try to debug a C program making the connection between what C codes creates this kind of assembly. Or, at some point you will try to make a multi-threaded program in Python and realize that it doesn't behave concurrent at all, and when you do more research you realize that this is because of the GIL. Or at some point, you will do a scope mistake in C++ and realize that objects only live within its declared scope.
It's impossible to not pick up more and more about stuff you do.
>and you have to learn to structure your code so it's easy to navigate and read and you don't need gimmick tools to get around a simple text file.
You do know that at some point you need to make programs that are bigger than a single text file, right?
Easy code navigation is perfect for familiarising yourself with a completely new but large code base, for example. How would you even know where to look for the method implementation without it? Doing panic-like greps all over? Why not just use something like ctags and cscope?
Short and readable code is not the same as obfuscated, cryptic shit.
>using C string functions
>doesn't consider different character encodings that use variable byte length characters such as unicode
Please stop using C
>You do know that at some point you need to make programs that are bigger than a single text file, right?
of course i know that.
what i meant by "gimmick navigation tools" is shit like sublime's text map thing
>copying a null-terminated string to a buffer
>not making any assumptions of characters
Null-terminated strings is not generic data, you're already making an assumption about the data by looking for the terminating in-bounds signal.
any fancy "navigation" << two panes with text -- one you edit, another you refer to.
The problem with "IDE" and "advanced editors" is, all those little windows leave no space for the second text pane, so their users "need" navigation features.
_strings_ are always null terminated. They may be in single-byte encoding or UTF-8 (so character may or may not be a byte), but they are still null-terminated.
"generic data" is not supposed to be manipulated with string functions because it's not strings. Well, duh.
>Programming languages aren't like spoken languages. When you've learned one you've basically learned them all.
only *if* you first learn a language sufficiently low level. this only holds true for specific languages and is generally wrong.
each language has its own dialect that is preferred and just because you can cobble some bullshit together doesn't mean it is correct.