[ / / / / / / / / ] [ b / news+ / boards ] [ operate / meta ] [ ]

/gentoo/ - Technology

Install gentoo.

Catalog

Name
Email
Subject
Comment *
File
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Options
Password (For file and post deletion.)

Allowed file types: jpg, jpeg, gif, png, webm, mp4
Max filesize is 8 MB.
Max image dimensions are 10000 x 10000.
You may upload 1 per post.


File: 1411080192808.jpg (115.36 KB, 396x364, 99:91, angry cat.jpg)

 No.26

All right /gentoo/, where do I start to learn how to program?

I'm interested in real programming, like you make shit that runs on computer, not bullshit Android games.

What are some good resources for someone who doesn't know shit, but is willing to learn?

 No.30

Start from the bottom or top.

Python is an easy, slow, popular language.

C is also popular, but hard, unforgiving, and fast as fuck.

Starting from the bottom is better if you want to be a serious programmer as you'll know theory better and how things work, but working down is easier, just a little redundant.

The ultimate project is making a CPU in a logic design suite (the simplest is Logisim) or write a CPU emulator.

 No.32

>>26

depends on what language you're looking to learn. The "Teach yourself X in 21 days" book series is actually pretty decent. I'm sure there's a torrent of it somewhere.

 No.37

c# is common, decent and object based with good syntax. Good to start.

Once you learn one language, you can learn others really quickly.

 No.44

op here

k

so far i got python, C and C# recommendations

what about C++?

how hard am i gonna get fucked getting into it?

 No.45

>>44
C++ is basically C with additional features, if you learn C you're also learning the basics of C++, I would NOT start with C++ though.

C# is pretty much a windows-only lang in the professional world, it's ok, but if you want a higher level language, I'd go with a mainstream script like Python/Ruby, or if you're a hipster, Go(not script, compiled+runtime).

Also, Arduino is a popular way to get into low-level C programming on Micros, there's even a simulator.

 No.50

>>44
I'd suggest start with C, then move to a nicer language like Common Lisp to seek enlightenment.
It's kinda like drinking a cup of piss in anticipation of the glass of brandy infront of you. Black and white.
That's not to say C doesn't have it's place – it's far more practical than CL, but if you want to understand the beauty of programming, Lisp is the way to go.

 No.70

If you have no previous experience in programming, a functionnal language like a Lisp or Haskell might be easier, as some core concepts of functional programming (recursion, functions, …) are learned in high school math. If you are already used to the imperative paradigm of programming, they might be harder to learn.

 No.106

File: 1411173075135.jpg (327.95 KB, 1360x1200, 17:15, 482d6a8648d9e0edfc9ce02145….jpg)

>>44

if you want to learn C++, you should learn C first. they're both fine languages to work with, but C++ has an overwhelming amount of fancy crap on top that is likely to just be an obstacle to someone trying to get a grip on their first programming language.

though in any event, python is probably a better choice for a complete beginner. C is lovely but tracking down segfaults might be best left until you have a decent grip on the theory.

also you should play around with common lisp because 1) not having a statement/expression distinction is nice; 2) defmacro is hot shit

anyway, have fun anon

 No.108


 No.115

OP, what you have to understand is that everyone ITT has a favorite language for their own reasons.

The lab rat who needs to crunch data with minimal effort is writing Python scripts and making good use of the SciPy library.

The video game dev who needs to maximize performance is writing deep magic code on a low level.

Why do *you* want to learn how to program?

 No.118

File: 1411197655989.png (82.97 KB, 1288x958, 644:479, 1385717330107.png)

>>115
>The video game dev who needs to maximize performance is writing deep magic code on a low level.
Not OP but this is what I was planning on doing. Yes I know, I bring shame to every gentooman but god damn I'm curious on how that shit works.

 No.147

File: 1411247806168-0.jpg (95.19 KB, 800x613, 800:613, T6VnN.jpg)

>>118
>"I bring shame to every gentooman"
No big, Holmes, we're all learning here
If you become one of the people who actually knows their shit on their own I will be proud of your dick

I was about to write a good-sized post on my critique of the image but I have to look at what it's trying to do; it's a kick in your ass attempting to free you from information paralysis because there is so much shit on the internet about everything it's easy to get caught up in looking for the "perfect" resources, or really any resource you want to use at all.

Your image is a good resource. The lesson-based format of LPTHW and CodeAcademy is much more digestible than a sprawling textbook and you will go from 0 to practical in a shorter amount of time. Of course, the downside is the lessons are short and you are basically enjoying a crash course in Python (the "big sprawling textbook" I mentioned, Learn Python from O'Reilly, is 1600 or so pages minus how large the references, appendix, and index sections are but honestly that's about as small you can make a Python book without chopping out whole sections of resources).

Assembling a computer is a refreshing hands-on project but as far as you are concerned they are all still black-box components with connectors. Peering inside the black boxes is the scope of computer architecture but computer architecture will not help you to put together your computer.

Here are my comments:

1.) LPTHW and CA are good resources. If you are like me and learn better from big textbooks, go ahead and try Learning Python by Mark Lutz. The most challenging thing you'll do is actually picking a resource and sitting down with it.
2.) Forget all nagging doubts wondering if you are doing it the right way. You are doing it the right way. Don't wonder how Dennis Ritchie or Ken Thompson would have learned this stuff, because we know how they did that; they went to university and got graduate degrees in doing it.
3.) The Learn Linux the Hard Way site is dead but it's here on internet archive: https://web.archive.org/web/20130926213426/http://nixsrv.com/llthw.
4.) Peering into the computer architecture folder, I see the book by Hennessy; Hennessy is a text for computer engineers, for the most part. You want to use Computer Systems, A Programmer's Perspective. It's written by two professors at Carnegie Mellon University and it's a very, very good text looking at hardware for software people.

TL;DR:
1.) LPTHW and CA. If you like big textbooks, read Learning Python.
2.) Putting together your own computer is an essential thing to know, mostly as a psychological "don't be afraid of tinkering," but honestly won't teach you much.
3.) Ubuntu is good.
4.) By this point you are beyond "C the Hard Way" and you could just read KNR or, my personal favorite, "C Programming: A Modern Approach." That title makes it sound like a shit textbook by an unmotivated and uncreative college professor somewhere but it's beloved by all who use it and it's essentially the modern version of KNR.
4.) SICP is also very good. It's what MIT used for their intro course in computer programming for a long time before switching to Python.

This course will teach you a lot about programming, some about Unix, and it's as good a path as any other. Like I said, don't get caught up in worry about "the best path;" they are all good paths, and the best path is the one that actually gets you to programming. (testing italics)


For OP: just rule out C++. Don't do that shit first. Listen to this man: >>115
Everyone in the thread has their personal language preferences. I am an EE-tard and so am biased towards low-level languages like C, ASM, and HDL. Lab rats and physicists like Python.
Perhaps you don't have a concrete answer to "Why do you want to learn how to program." Maybe you just want to learn the basics and figure it out. We ask because learning this stuff, especially on your own, could be difficult without a reason to come back to. Maybe you don't have profound motivation like "I must learn to code or my dog will explode" but it helps immensely to have a drive when you falter, and you probably might.

You will not go wrong learning Python. Like I said, I learned C. Python is great but if you want to become a very good programmer you will need to look deeper. If you already have a good desire to learn deeper, you can just start with C or Common Lisp (with SICP). For C, you can use KNR or the KN King book I mentioned earlier in my post (i've used both and I really like KNK). For Lisp, there is no other place to start but SICP.
You will not go from 0 to practical in the fastest amount of time with C or Lisp, which is why we ask your motivation, because you will need it. C is good if you want to learn deep but still use languages practically, soon; SICP will teach you even deeper than C but it's a really, really slow cooking method. With SICP, you'll become a superior programmer… eventually.

 No.153

>>118
If I download the torrent, is there any risk of legal trouble? Or do they not care unless you are downloading Hollywood's newest Adam Sandler movie?

 No.154

>>153
Of course it's illegal but the chance that anyone in a position to do anything about that cares is practically zero, and the chance of you getting a love letter even if the torrent was being monitored is even zero-er than that

 No.171

>>147
>Computer Systems: A Programmer's Perspective
>C Programming: A Modern Approach
Are you my professor? These are the two books that I am using in my Systems Programming class.

 No.184

>>171
No, lel, that doesn't sound like any university I know

 No.188

File: 1411320266411.png (90.08 KB, 1920x1080, 16:9, G WALLPAPER.PNG)

>>118
turned it into a wallpaper for no reason



Delete Post [ ]
[]
[Return][Go to top][Catalog]
[ / / / / / / / / ] [ b / news+ / boards ] [ operate / meta ] [ ]