Been interested in learning programming...

been interested in learning programming, looked at the Veeky Forums wiki but i didn't think any of the books were what i was looking for.

any book recommendations would be helpful to get me started. also any recommend languages to learn, I've learnt some python and know enough to make beginner programs.

Other urls found in this thread:

jupyter.org).
github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages).
twitter.com/NSFWRedditGif

depends on what you wanna use the programming for

also, ask /g/

i guess i haven't thought about what i would use it for, but say i was to go into statistical programming with languages like SAS is it better to start with SAS or something else?

to learn the fundamentals of actual programming, like how to think about programs in an intelligent, wise way: SICP. it's an excellent introductory textbook to programming

>statistical programming
learn R

Learn python, its incredibly easy, then look at julia if you want to learn a nice language with little effort thats immensly powerful, or R if you want something different thats incredibly powerfull

Then if you want to dive a bit more into programming, look at java

If you want to learn something practical after python, check out sqlite, and how to use it w. python

Dont take up a functional language other than lisp/scheme, and just touch on them briefly
Dont get tempted by haskell/scala, those are a waste of time, if you desperately want to, do oCaml, its the only one thats marginally relevant

Dont ask /g/ they will throw you out after suggesting C, python and gentoo

Source
Bs in engineering physics and software engineering

user, thank you so much.

Learn C++

This, I work in bioinformatics. Nothing matches R for statistics

racket and C are all you need, literally

>Then if you want to dive a bit more into programming, look at java

Java is a terrible language and should never be used by anyone.

Java is objectively a better C++, though this is damning with faint praise.

R

who is this fluid druid?

Good post, except if OP wants to delve more into programming C++ is a better language than Java. Java becomes a slow clusterfuck of a language very often

what do you recommend for python, user?
codecademy, coursera, ?

Personalyl I used Python Programming for the Absolute Beginner by MIchael Dawson

Try jupyter (jupyter.org). It started with Python, but now you can use about any language you want (github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages). I find it very useful for exploratory programming (i.e. fucking around with either the language or with the data I have)

If I had to teach someone to program I would start out with assembly, then C, the C++. This should be the way it is taught in universities.

Best language for sure is MATLAB, python is a wannabe. Got my job in CS cause solely cause I knew it. Just decide on projects you want to do and use stackexchange/mathworks for help

Assembly is nice, put it isn't really programming, it just uses more abstract programming concepts, i.e. harder concepts. Assembly is more moving literals around. If you learn programming first then you learn stuff on a curve and everything is easier

Download visual studio, use C/C++ for low level/high performance and C#/F# for everything else. Be sure to learn your data structures like linked lists/binary search trees and algorithms like bubble sort/genetic algorithms. /g/ has the gentoomans library which you should download, it's a treasure trove of programming knowledge.

>Java is objectively a better C++

No it's not.

Programming: Principles and Practice Using C++ by Stroustrup

Algorithms in C++ Parts 1-5: Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms by Sedgewick

Algorithm Design by Kleinberg and Tardos

>shitty java vm
>objectively better than compiler
JIT compilation > VM trash, nobody likes needing layers of bloat installed on every machine just to run a program. This is why java should be replaced with c#, it's cross-platform and you can get native code out of it.

Java is cross-platform as well, specifically BECAUSE it uses a VM. C# essentially uses a VM too, that's what the .NET runtime is. And even if you can get native code out of it (by which I assume you mean an executable that will run without the .NET framework), that's not how it's usually done, and you'd probably lose a lot of the features provided by .NET that make it such a useful language in the first place.

Best first language is Python. R is for statistics and big data in general. Its fairly easy to learn. You do need training in statistics to do the computation. Also remember you're trying to learn the basics. Like for, while, for loops, if and etc. The real stuff begins when you're trying to do your own stuff and you got to learn what libraries to use.

>CS majors

And they wonder why we make fun of them

>Java is cross-platform as well, specifically BECAUSE it uses a VM.

Have you ever tried to use java "cross-platform"? It's a fucking nightmare.

Best programmers are always math or physics majors from my own experience in the world. Statistic folk are great at the heavy lifting for computation coding. I love seeing them sperg out with math majors. Its a fucking hoot.

.net isn't a vm, it's a collection of libraries. All languages in the CLR are JIT compiled to an executable that can be distributed to other machines. C# executables work fine without .net while java can't work at all without vm bloat which makes it inferior.

Lol no, chemical engineer here.

Jesus, how did I never find out about gentooman library? Why it's not in /g/ sticky?

>JIT compiled to an executable
You do not understand the words you're using.

Not that user but my trajectory was Codecademy -> two edx courses on Python by MIT ->
Coursera corses on Python by U Mich. Other stuff, like books and practicing on my own too, of course. Codecademy will give you just a taste of the language but you won't be totally clueless if you decide to take other courses, like the ones on edx from MIT, which are VERY demanding for a beginner but also incredibly rewarding. Coursera courses by U Mich are also good but oriented more towards practical use of Python, not so much towards CS fundamentals, which the MIT courses give you. Good luck.

>visual studio
>C#/F# for everything else.
Microshaft shill detected.

Repeat after me Lisp, C, assembly in that order.

Lisp seems a bit much for a first language. I'd say he start with Java, in spite of all the shit it gets on here. It has straightforward syntax and provides strong foundations in OOP, which is currently the industry standard.

Install linux, a easy distro like xubuntu is fine. Learn how to use the command line to operate over the file system. Learn how to use super user privileges efficiently. Now you can Install your text editor and you should start to learn vim.
Disable your arrow keys and mouse so you will not be tempted to use them. If you have small hands or a huge key board you should rebind the escape key to the caps lock, you will need it.

Once you are proficient at vim you should start learning c, since you are not in to ce you can skip assembly.
Start learning about git too, you will need it.
One you compleated a working 20k line long modular project move to c++ and learn object oriented design. Learn about cmake.

You can now move to python

>Lisp seems a bit much for a first language. I'd say he start with Java.
That would depend on what OP plans to do, Java may be better suited for Software Engineering, but Lisp is better suited for Computer Science.

>Lisp seems a bit much for a first language. I'd say he start with Java, in spite of all the shit it gets on here.
Why not Scala, then? Learning something with a strong and relatively advanced type system seems like a good idea anyway.

>you should start to learn vim.
>Disable your arrow keys and mouse so you will not be tempted to use them. If you have small hands or a huge key board you should rebind the escape key to the caps lock, you will need it.
bullshit, that's the WORST way to learn vim. it will just end up with OP being buttfrustrated about vim for life and never using it

the better way to learn vim, the way that actually teaches you its value and utility, is to run through vimtutor once or twice so you're at least exposed to the concepts of modes and the most used hotkeys, and then start using vim like any normal plaintext editor. just pretend it's notepad. and then, every time you have an infomercial "there's got to be a better way!" moment, look it up, because there is.

ebin /g/ meme, brother

Can't you just run the .class files on any computer that has the JVM? I thought the only issues would be if you're dealing with different JVM versions.

JIT compilation means it's compiled at runtime, so you can't distribute the executable to other machines unless you have some weird way of copying it out of memory.

t.no employment, education or training.

codecademy.com

now feck off ya git

how hard is it to get a software developer job with a physics degree? i'm debating between computer science and physics.