Hey Veeky Forums

Hey Veeky Forums,

Serious question. If I haven't done any programming at all until the age of 21, but I start now, is there a possibility for me to become a world class programmer/computer scientist or not? I'm really dedicated and want to learn, but I'd like to know if it's even physically possible at this point.

Thanks(pic unrelated, answer is 5pi/2 tho)

Other urls found in this thread:

cs.cmu.edu/~112/schedule.html
mitpress.mit.edu/sicp/full-text/book/book.html
cs.cmu.edu/~rwh/courses/hott/
fullstackreact.com/
ocw.mit.edu/courses/electrical-engineering-and-computer-science/
eecs.mit.edu/academics-admissions/undergraduate-programs/course-6-3-computer-science-and-engineering
techtv.mit.edu/genres/18-education/videos/33420-october-20-2016
youtube.com/user/Cjtatmitdotedu/videos
youtube.com/playlist?list=PLSE8ODhjZXjbisIGOepfnlbfxeH7TW-8O
abebooks.com/products/isbn/9780134092669?cm_sp=bdp-_-9780134092669-_-isbn10
www-cs-faculty.stanford.edu/~uno/fasc5a.ps.gz
hyperelliptic.org/tanja/teaching.html
hyperelliptic.org/tanja/teaching/crypto16/
ietf.org/mail-archive/web/cfrg/current/msg08167.html
twitter.com/AnonBabble

>I'm really dedicated and want to learn
Well, shut up, leave, pick up those books, and get to work! You'll find out if its possible when you get there.

I really don't want to put in all my life and literally find out it wasn't worth it since my brain can't learn it and doesn't have the power to do what people like Jacob Barnett or Demis Hassabis can do. That is a legitimate concern mate.

Programming is a glorified trade job and a theory of computation PhD takes about 7 years not including all the english and electives you have to take at the same time so yeah you can easily do it.

Modern programming is poking a big library and stringing shit together unless you're involved in analysis or writing compilers or something.

Here you go can do both of these in 6mos doing all the exercises. cs.cmu.edu/~112/schedule.html
mitpress.mit.edu/sicp/full-text/book/book.html

Also, I'm getting an Adderall prescription later in the week. It should give me a tiny bit of an edge, right?

>Modern programming is poking a big library and stringing shit together unless you're involved in analysis or writing compilers or something.

So in your opinion, crystallized intelligence is more important that fluid intelligence in CS? As in, most of it is recalling stuff you learned and applying it, rather than creating?

The most important thing in cs is
- knowing how to define a problem
- knowing methods to solve a problem w/computation
- building abstractions (math teaches you this)

Everything else is just trade school stuff like linking a library to another library

For example, here's a grad level course in programming theory complete with lecture videos. cs.cmu.edu/~rwh/courses/hott/

The prof is one of the designers of ML func language. This entire seminar, is just to show how to abstract concepts from Martin-Löf’s system of constructive type theory into an abstraction called HoTT. A whole ton of abstractions on abstractions they've made in Linear Algebra solely designed to make an easier more clear language they could work with to solve math proofs.

As you can see abstraction to solve problems is basically the core of compsci in any subset you go into like complexity (lower bound analysis) or optimization (higher bound) or even being a front end webdev and trying to abstract the complexities of a photo webhost in order to get the (foolish) user to understand how they can move bits from their phone to the remote server without having to understand TCP/IP network stacks or standards, image compression, physical storage theory ect. You abstract all that way and presto there's your picture.

That's the entire of compsci in a nutshell

uhhh.

Okay anyways TC you're a faggot but you can learn to program if you try.

If you wanna learn CS learn yourself discrete math, calculus, probability, statistics, linear algebra.

The main topics in CS are (in no particular order):

Algorithms/Data Structures
Theory of Computation
Operating Systems
Compilers (overlap with Theory of Computation)
Programming Language (overlap w/ ToC)
Networking
Artificial Intelligence
Machine Learning

These are pretty much the essence of computer science.

If you wanna try and get into industry by self teaching:

1. Learn Programming language of your choice Python, C++, etc. Focus on your domain, so if you wanna be a web dev learn JavaScript, HTML, CSS, PHP (lots of things for web dev but none are particularly difficult).

2. Learn algorithms/data structures.

3. Build a portfolio of meaningful projects.

4. ????

5. Get screened by HR for not having a CS degree (lul)

How long do you think it takes? Just do it for a while. If you find out you dislike it then stop. Problem solved.

At least 5 years of hard work to be a top-level programmer, after which is when the differences in intelligence are mainly observed and manifested when you try to perform difficult tasks, such as work on machine learning etc.

You'll figure out if you like it or if you're any good at it before becoming a top programmer.

Realistically, it would only take you 1 year to be a modern jr library linker which is what most industry jobs are. Then you could start as a junior developer somewhere and with studying on the side turn into a senior/top programmer within 5-10 years.

My advice stands, do these 2 courses/books as a core
Then go learn frameworks and libraries to just link shit fullstackreact.com/ is a good book for this if your goal is work, and everything else you will learn on the job as a junior (unit tests, best practices, ect). Programming these days is a trade job.

Once you get in then you go study algorithm complexity, abstract algebra, graph theory ect. Graphs, if you understand them, you then understand a large chunk of CS because stuff like git, is just a Directed Acyclic Graph filled with objects, a programming language is just an Abstract Syntax Tree abstracted into an Abstract Semantic Graph. A graph database is what SAP HANA is. A network is just a network graph. A website is nothing more than a link structure represented by a directed graph.

If you know graph theory, picking up new software and languages is quite easy. Computer Science is a young field ~100yrs old it's quite easy for even a layman to crack open some graph theory books and develop algorithms that transform graphs and make advances in the field. It's not like Math/Physics where there are hundreds if not thousands of years of advancement and little room for understanding on the grand picture.

Anyone who will not give a non-answer answer?

Fine.

>until the age of 21, but I start now, is there a possibility for me to become a world class programmer/computer scientist or not?

Possible.
There, that's your answer.
Have fun daydreaming.

I started programming when I was 21ish? I honestly don't remember anymore.

In a PhD program in a top 50 CS program now. You can do anything if you WORK HARD for it.

Trust me, I worked really hard since I added CS as a second major from a social science. A very unique combination so I don't wanna say exactly what it is.

You gotta GRIND and hit the books if you want to see results. Sorry if this isn't what you wanted to hear since you seem to dismiss everyone else telling you this.

*I'm 24 now, worked professionally as a programmer for about 2 years before grad school.

I quoted the last post because I agree with it, not necessarily in response to the poster.

Go to your local uni, sign up for a Computer Programming 1 course, then do Project Euler and coding competitions (FB's Hacker Cup, Google's Code Jam, etc.) until you become employed.

This was probably one of the few actually encouraging answers that felt it had substance. Thank you friend.

So you want anecdotes?
Great.

Damn pajeets.

>doesn't provide any information or insight into the topic at hand
>criticizes the existing information

You must be a Java programmer

We tried to give you real advice.
But you prefer feel-good story how some online stranger's success.

Why are you still here?
I thought you gonna "work hard" to become a world-class programmer.

Face it. You're just daydreaming.

Ok maybe. Anyways, still real answers preferred.

Ofcourse you can OP. No one is to old to learn

Bump

This thread is full of real answers, just you clearly don't want to do the work. ocw.mit.edu/courses/electrical-engineering-and-computer-science/

Jesus fucking Christ dude, you're really not gonna let this go are you? Move on.

And holy shit bro, thanks for that link. Is that every single course taught at MIT related to this? I'm honestly grateful.

Pretty much, though not all are complete but complete enough you can figure it out.

Go on MITs site and get their Course curriculum recommendations eecs.mit.edu/academics-admissions/undergraduate-programs/course-6-3-computer-science-and-engineering pic related

The most import course is 6.001 SICP as that book/lecture notes seemed designed to fill in the blanks somebody without a degree needs

Also, here's another tip
If OCW doesn't have the course videos you can always go to MIT TechTV and get the most recent course lectures, like this example: techtv.mit.edu/genres/18-education/videos/33420-october-20-2016

Another tip, you can just type the course name into jewtubes and often it will come up with recent lectures too (6.004) youtube.com/user/Cjtatmitdotedu/videos

Carnagie Mellon also has a bunch of open courses like this db course youtube.com/playlist?list=PLSE8ODhjZXjbisIGOepfnlbfxeH7TW-8O

come back in 2 years enjoy

Bumping for people to give other resources.

Should I read The Art of Computer Programming? I've done until Cal 2, so idk if I'm qualified for it though.

I read Vol 1 and did many of the exercises. Routinely the info in there has come up in day to day work, it's essentially a master's volume on building compilers because you're doing a ton of algorithm optimization and analysis.

It's also not a "reference" book like most people claim, there's exercises for a reason.

The mathematical preliminaries in the beginning of the book you essentially just need a course in some kind of rigorous math so Intro Calculus w/proofs. Knuth will teach you everything you need to know though it's pretty terse but not impossible.

People also recommend Concrete Mathematics before TAOCP but that book is full of tricks and not needed. I had already known assembly before trying MIX though (now he uses MMIX) which I learned from this book: abebooks.com/products/isbn/9780134092669?cm_sp=bdp-_-9780134092669-_-isbn10

There's lot's of other great things in there like advice on how to design a complex program from scratch, how to pick the best algorithm for an embedded system ect. It took me almost a year to finish Vol 1 though, and I read it about 30mins per day.

Simply inspirational.

People also criticize the book for being "too old" such as the analysis of tape sorting.

Then they discover today's RAM works fastest when accessed sequentially and all those algorithms are now magically new again so they'll write a blog post on the amazing discovery they made about sequential RAM sorting when Knuth wrote about it in the 1960s.

Knuth has drafts of new volumes on his personal site if you want to look at them, though pretty advanced such as Stochastic calculus and Martingales www-cs-faculty.stanford.edu/~uno/fasc5a.ps.gz

That makes more sense when you read Vol 1 math prelims because he explains completely what all the notation is. When you buy a physical copy of any of these books, you will be in total awe how one human managed to put together such information in just one lifetime.

>other resources

Anybody interested in cryptography Tanja Lange has all her courses open hyperelliptic.org/tanja/teaching.html

For example her master's course in Cryptology has all the video lectures hyperelliptic.org/tanja/teaching/crypto16/

Her plus DJ Bernstein are the top researches in high speed crypto and quantum cryptography right now.

Speaking of DJ Bernstein, he gives an absolute master class on crypto analysis and security on the IETF working group mailing lists where he routinely blows out NSA shills who are trying to cram in bad crypto standards. Peter Gutmann also has great posts on there detailing everything you would ever want to know about writing backdoors for ECC, why certain modes are inferior, corner cases ect. ietf.org/mail-archive/web/cfrg/current/msg08167.html

Go through all his posts for the last 3 years if you want a crash course in state of the art crypto analysis

>Thanks(pic unrelated, answer is 5pi/2 tho)

you mean burger pie over beer.

You are literal cancer that deserves the gullotine.

wew lad