[ / / / / / / / / / / / / / ] [ dir / arepa / builders / hydrus / lewd / marx / miku / roze / stoa ][Options][ watchlist ]

/tech/ - Technology

You can now write text to your AI-generated image at https://aiproto.com It is currently free to use for Proto members.
Name
Email
Subject
Comment *
File
Select/drop/paste files here
Password (Randomized for file and post deletion; you may also set your own.)
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Expand all images

File (hide): 0b007aeecf2f739⋯.png (107.97 KB, 645x968, 645:968, 1517276432893.png) (h) (u)

[–]

 No.870238>>870245 >>870263 >>870638 >>870676 >>870681 >>871807 >>871814 >>871907 >>882893 >>882902 >>883309 >>883598 >>886611 >>890803 >>890814 [Watch Thread][Show All Posts]

>try to learn programming with Harvard CS50 from Edx

>literally had to look up the solution to the first problem set, did not even understand completely how the solution actually works

Should I just give up? Am I too much of a brainlet to learn programming? Why is it so hard to go from the theoretical basis to actual practice?

 No.870241>>870459

when was the last time you installed gentoo?

it should be now


 No.870245>>870299

>>870238 (OP)

most software engineers just copy and paste from stackexchange pajeets, just learn to self-market


 No.870255>>870368 >>871866

Get your hands dirty! That's how a bunch of people here got into programming when they were young and had too much ADHD to take long theoretical courses seriously.

Learn Python or Javascript or some other scripting language to begin with because of how easy and rewarding they are in the beginning, then switch to another languages suited for larger code bases, and begin to learn the theoretical basis.

DON'T GET BOGGED DOWN WITH TECHNICALITIES FOR NOW.

I'm pretty sure at least one of John Carmack's less than 10yo son already knows Racket. And other people like the aussie Troy Hunt who is behind haveibeenpwned is also teaching one of his young kids Python. And i'm pretty sure they aren't being introduced to it with 5 inch thick books on the theoretical basis of programming.


 No.870263

>>870238 (OP)

Start with Knuth's Art of Computer Programming. You think you're a brainlet, and you are, but you don't understand just how much of a brainlet you are.


 No.870299>>870610

File (hide): e6dbf5a0556fd0e⋯.jpg (53.08 KB, 850x400, 17:8, knuth.jpg) (h) (u)

>Should I just give up?

If you're that much of a faggot, yes go right ahead and give up. And don't bother trying anything else difficult since you can't take failing a few times.

>Why is it so hard to go from the theoretical basis to actual practice?

Because that's when you know if you really understood or only kind of understood it. Also because it is hard. Most "programmers" are like >>870245 said, they have no idea what they're doing and are worthless.


 No.870368

>>870255

>I'm pretty sure at least one of John Carmack's less than 10yo son already knows Racket.

big surprise there, hey, you think trumps son is a millionaire too?


 No.870392>>870617

File (hide): 05e6c26ac72f782⋯.jpg (217.32 KB, 1366x768, 683:384, 05e6c26ac72f782e01aa7cf3db….jpg) (h) (u)

>1517276432893.png

>/g/ can't even master chapter 1 of CS for Absolute Fucking Retards

What a surprise.


 No.870459


 No.870610

>>870299

I feel like the course is not very logical though. They explain "this is a loop, ths is an if" etc and then immediately ask me to solve a problem using them, I feel like someone had just taught me the alphabet and then asked me to write Moby Dick immediately after.


 No.870617>>870672

File (hide): 1aaafab79eceb21⋯.png (158.72 KB, 947x324, 947:324, dumb_faggot.png) (h) (u)

>>870392

Not OP, but:

>He doesn't know that you can save a file using the Unix time stamp by clicking at the (u).

What a surprise.


 No.870638>>870688

>>870238 (OP)

Try the learncpp guide.

http://www.learncpp.com


 No.870672

>>870617

Go back.


 No.870676>>870688

>>870238 (OP)

First of all, if you insist on using CS50 material, try one of the older ones (preferably the very first one from 2007 I think). The audience was much smaller and it resembled actual lectures, while having watched portions of a more recent one I had the impression it devolved into a cringeworthy circus show held in a huge auditorium.

Secondly, if you are new to the concepts which the instructor is talking about, you can't expect to understand everything and just from the lecture and you won't be able to tacle the assignments just basing on having watched the lectures. From what I can remember he was going quite fast from one thing to another often just barely scratching the surface. You will complement watching those lectures with lots of referring to other sources and practicing on your own.


 No.870681>>870688

>>870238 (OP)

You may be a brainlet but cs50 being good is just a meme. There are much better courses online, teached from people who like to teach and not overpaid jewish professors.


 No.870688>>870712 >>871799

File (hide): 5e5d98aa47596c8⋯.png (34.27 KB, 817x443, 817:443, 1517927970744.png) (h) (u)

>>870638

Thanks anon I'll check it out

>>870676

I am reading the two books about C programming that they suggested as complementary reading material

>>870681

Do you know of some examples?


 No.870712>>870726

>>870688

Since you're learning C, go on libgen and pirate Deitel - C how to program. Read the chapter and then play with the syntax yourself and do all the exercises. It requires time and patience. If you forget the syntax, look it up online, but of course don't look up the solution to an exercise.

Elitists hate this book, but it has good exercises and therefore it's a good book for someone just starting.

In general there are a lot of university manuals with good exercises (always pirate them), but I can only recommend Deitel and it's better if you just focus on one.

You can also follow this youtube playlist, I'm not sure it covers enough C, but it's good for a beginner https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAKIXv8Yr6nhGJ9Vlcjyymq

Problem with getting advice on the internet is that people who give advice can't put themselves in the shoes of a beginner. Therefore they'll recommend books that are pretty hardcore or have social status (Harvard cs50) and criticize books/courses good for beginners because "they teach bad practices" or some other bullshit that doesn't concern a beginner. They don't remember when they were beginners themselves, and I'm often preoccupied many are beginners right now and never went past a chapter 3 of a book but they are just repeating what they heard.

After that, you should also decide what you want to do with programming. You are learning C, but do you know why?

I mean, do you want to program something or just solve puzzles forever? You can use almost any language to learn how to program, and it doesn't take that much time to learn the fundamentals of programming. But after that it's all about acquiring specialized skills to solve problems, like how to use tools and patterns common in a certain field, to a deep understanding of a specific language.


 No.870718>>870726

I was writing out a post last night, but decided against it. Now I see this thread, and it's hard to ignore someone not being able to find the answer to such a simple problem.

In my many talks with people from all over the world of different specialties, it seems the most common factor is determination to be exceptional in their field. When I first started out, I felt like an utter brainlet. I tried installing Gentoo (before the meme) and could not shake the crushing feeling of uncertainty and helplessness. There was no wiki, there were no real man pages, there were only mailing lists to parse through and gain the info needed to distinguish the ass from the mouth. Yet I failed the first time through. And the second time through. But then the third time through I got a few steps closer, but not very far. So the fourth time comes around, in between the routine installing Ubuntu because I was CLI-iliterate, and I make some more steps. Something like steps^2. I didn't succeed and I had to install Ubuntu again. Despite all of this, I still had it in mind to install Gentoo just once, if only to quench my ambitions. Well, about a month later comes by, I've been using Ubuntu mixed with learning the CLI, and I now have a good grasp of all the utilities and how the system interacts with the hardware. What make flags are and how to use the Bourne Again Glue Language. Ubuntu was worse than windows and I needed out to the promised "userland." So I pop in the installation media once again. I run through all the usual start stuff, such as working with the BiOS to switch boot order and configuring my network manually (something so seamless and quick, but easy to never have to do by hand with the assortment of tools that move you away from the bare metal, at hand). And everything seems very easy. I'm not uneasy and my ego is intact. Hell, I'm so comfortable using the cli, that I'm installing Gentoo on 3 hours of sleep from just the muscle memory of having to do the steps so many times. Alas, muscle memory only takes me so far, before that dreaded blue compile flags interface is bubbling up memories I've tried to suppress. I feel uncertain if the outcome will be different this time, but my experiences in the past month have taught me to be resourceful and confident in my ability to troubleshoot. I don't really think me writing out five more sentences to fluently wrap up this story, so

>go through compile flags again

>do some things differently from before

>they work and I am able to install Gentoo

>I've beaten one beast, but now I must face another

>Ports

>And so the cycle repeats

>Of being low and climbing high

>But then as I reach one summit, another, taller is uncovered

>Piercing the clouds, you can only know of its height by climbing above them

>And you look around, and things don't seem different

>There are more mountains to climb and they all feel insurmountable

>But you can't know how tall the mountain really is, until you climb it

>You look behind you, the first flight of steps don't seem so hard

I think this feeling comes from never having set out to attain a goal. If you had, you would've learned that most things you put your mind to are possible. The resources are plenty and your brain young and pliable. All the people who do great things in CS, had to have started writing Hello World programs in their programming language of choice. For some it was assembly, for others scratch. It probably didn't even work the first time, so they spent hours debugging a simple print statement. Hours for only "Hello World." But once they'd paid their dues, that knowledge was available to them in mere seconds. They no longer need to debug newer statements, because they know the quirks and can do it right the first time in log previous-time. But now they want to write a simple calculator with a user interface, so they must repeat again. The cycle of being ignorant and confused, then transcending this inferiority into betterment of oneself.


 No.870726>>870727 >>871799

>>870712

Thanks, downloaded it and will check it out, maybe I'll even buy it later this month.

>You are learning C, but do you know why?

Not really. Seemed like a good place to start. I am kind of interest in learning how to datamine social media, but I want to be able to have good fundamentals and be able to get into a bit of everything when I need it to. I figured that I would begin with C rather than a meme language like Python.

>>870718

I know I'm a complete loser and failure at life anon, I assure you that you don't need to remind me. It's not even the first time I try to get into programming. The first time I was in middle school and I tried to learn actionscript. I seem to recall I got to the point where I made a ball bounce off the edges of the screen, and another one where the ball had physics and I could make it jump by clicking on it. I tried to learn Java and Python, years apart. I always failed in the end, I learned the basics of the language, but then could not put it into practice or simply got demoralized. Tomorrow is my 27th and here we are, trying once again, and probably failing for the nth time. And for what? Just for the sake of trying, because it's not like this attempt is going to make my life any better, it's just a distraction to numb the pain.


 No.870727

>>870726

*27th birthday


 No.870731>>870732

You should kill yourself or go back to cuckchan


 No.870732>>870733

>>870731

why not both?


 No.870733>>870737

>>870732

Because dead people go back to \emptyset forever, and cuckchan, being an existent entity, is not in \emptyset.


 No.870737>>870766

>>870733

that's like, your opinion man


 No.870766>>871815

>>870737

Prove it wrong. While you're at it, prove what exactly is going on inside of black holes.


 No.871799

>>870688

>I am reading the two books about C programming

>>870726

>Seemed like a good place to start.

It's not, learning C won't teach you good fundamentals about modern programming paradigms because it doesn't inherently support them, that's one of the reasons why I suggested the learncpp tutorial.

In my experience most of the worst code I have ever had to work with (and the code which I have to work with on a daily basis) is written in C, whats worse is that its code that many people use.

>probably failing for the nth time

>And for what? Just for the sake of trying

The fact that you are trying even after so many failures isn't a bad thing, its likely that each time you came close to overcoming your main barrier to understanding and this is the reason why you keep coming back.


 No.871807

>>870238 (OP)

Don't learn programming for the sake of programming. Learn it because you have a goal, something you want to make.


 No.871814

>>870238 (OP)

>try to learn programming

>with Harvard CS50 (a computer science course)

I've identified your problem.

Computer scientists sometimes program, and programmers often use insights from computer science to write better programs, but computer science and programming aren't the same thing. "Computer" science is something of a misnomer; you can do computer science without a computer.

If you want to learn computer science, a branch of mathematics, give CS50 another try.

If you want to learn programming, take any of the advice you've received in this thread on getting up to speed in a practical sense with a modern programming language. You can always tackle CS50 again after you've intuited some of the concepts via actual programming experience. One of the most enlightening experiences I ever had about algorithm design came from solving a Project Euler problem badly, then solving it again in a much more efficient way.

Good luck.


 No.871815>>882897

>>870766

The existence of black holes is unproven, Tyson.


 No.871866

>>870255

This right here. Make some small things, learning as you go. When you know a bit more(functions, variables, control structures, arrays, objects) you'll be set to learn how to do these same things in any arbitrary language.


 No.871900>>887500

Learning C will teach you how not to program.

Some Andrew weenie, writing of Unix buffer-length bugs, says:
> The big ones are grep(1) and sort(1). Their "silent
> truncation" have introduced the most heinous of subtle bugs
> in shell script database programs. Bugs that don't show up
> until the system has been working perfectly for a long time,
> and when they do show up, their only clue might be that some
> inverted index doesn't have as many matches as were expected.


Unix encourages, by egregious example, the most
irresponsible programming style imaginable. No error
checking. No error messages. No conscience. If a student
here turned in code like that, I'd flunk his ass.

Unix software comes as close to real software as Teenage
Mutant Ninja Turtles comes to the classic Three Musketeers:
a childish, vulgar, totally unsatisfying imitation.

> ...
> There's nothing wrong with C as it was originally
> designed,
> ...

bullshite.

Since when is it acceptable for a language to incorporate
two entirely diverse concepts such as setf and cadr into the
same operator (=), the sole semantic distinction being that
if you mean cadr and not setf, you have to bracket your
variable with the characters that are used to represent
swearing in cartoons? Or do you have to do that if you mean
setf, not cadr? Sigh.

Wouldn't hurt to have an error handling hook, real memory
allocation (and garbage collection) routines, real data
types with machine independent sizes (and string data types
that don't barf if you have a NUL in them), reasonable
equality testing for all types of variables without having
to call some heinous library routine like strncmp,
and... and... and... Sheesh.

I've always loved the "elevator controller" paradigm,
because C is well suited to programming embedded controllers
and not much else. Not that I'd knowingly risk my life in
an elevator that was controlled by a program written in C,
mind you...


 No.871907

>>870238 (OP)

OP, could you at least post examples of those problems?


 No.882893

>>870238 (OP)

>litererally had to look it up to understand how it works

So you learned something? I see nothing wrong with this.


 No.882897

>>871815

Who the fuck says that?

>gee, what's this region of space that all this shit is orbiting that just so happens to have the exact same characteristics as expected from black holes?

>Couldn't be a black hole.


 No.882902>>882907 >>883008

>>870238 (OP)

CSCI E-50 Syllabus

...Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML.

What the FUCK. This is way too much scope for a beginning class in programming. You need to start with basic procedural stuff using primitive data types. Then you move on to simple data structures, and that should be a class all on its own. That's the weeder course that separates programmers from normalfags.

Then you dip your foot into some assembly programming, another dedicated class, so you can actually understand what's happening underneath and not be some nigger floating in the ocean. Then you move on to advanced data structures. Next is a class on programming language theory, so you can generalize what you've learned so far and not be some one-trick pony. THEN AND ONLY THEN do you take a class on algorithms.

I cannot fathom how they expect to breeze through all these subjects in the course of one class. Also,

>webapps

Fucking really? I don't know what the fuck these Harvard niggers are doing, but its not cranking out decent programmers. Course should be titled, "How to hate programming and never come back"


 No.882907>>882929 >>883178

>>882902

it's not as indepth as you think. It's more along the lines of "these kids just learned while and for loops, lets have them implement a simple Cesar Cipher"


 No.882929>>882953

>>882907

>these niggers are paying us 65k a semester to teach them caesar ciphers LMAO


 No.882953>>883178

>>882929

Yes, that's how beginner lessons look like. If people cannot pass this level, it's a sign to show that they cannot pass the higher levels.


 No.883008>>883011

>>882902

>Languages include C, Python, SQL, and JavaScript plus CSS and HTML.

SQL is the only one of those languages that isn't complete garbage.


 No.883011>>883172

>>883008

You spelled CSS wrong.


 No.883172

>>883011

>CS:S

ftfy


 No.883178>>883264 >>883527

>>882953

>>882907

But that's just it, it's not depth, it's pure breadth. I argue that you cannot learn programming correctly in this way. I literally couldn't design a course any better with the intent to scare someone away from programming and teaching them just enough to make it all seem like magic. I mean, you're teaching basic data structures in the same course as "software engineering" and HTML. It's a fucking joke.

<Hey kids, wanna learn how to implement an Observable object? What, you've no idea what would motivate such an endeavor?

Hey, stop asking what "this" means, that was last week's test.


 No.883242>>883303

Learn VBA, OP. You'll be your office's wiz kid (in a normalfag environment).


 No.883264>>883530

>>883178

>I argue that you cannot learn programming correctly in this way.

Harvard wouldn't keep around a class that doesn't prepare them for future coursework.


 No.883278

Just download QBasic or GW-BASIC and run them in Dosbox. That's all you need to start making games and shit.

http://www.petesqbsite.com/

http://peyre.x10.mx/GWBASIC/index.htm


 No.883303>>883634

File (hide): fcd17bf3e07ac3e⋯.webm (4.44 MB, 720x480, 3:2, basic.webm) (h) (u) [play once] [loop]

>>883242

This OP. You will be like webm related in no time.


 No.883309

File (hide): e37d9f878efa012⋯.jpg (294.1 KB, 1200x849, 400:283, cirno5.jpg) (h) (u)

>>870238 (OP)

If you're stupid like me, you learn from experience.

>encounter problem

>be a tard

>look up solution

>repeat this cycle 10 times

>know how to deal with the problem automatically


 No.883527>>883530

>>883178

The purpose of CS50 is fundamental programming logic. All the depth they need to be an expert programmer can come later. Looping constructs, conditionals, and functions come first. Data structures, complexity analysis and formal verification comes later.


 No.883530>>883568

>>883264

Why wouldn't they, if its profitable? It's not an introduction any more than the "Cosmos" documentary is an introduction to being an astrophysicist.

>>883527

>Data structures, complexity analysis and formal verification comes later.

You need to re-read the syllabus. It includes data structures and software engineering. It's more of a buffet than a course, and totally inappropriate for anybody who wants to become a programmer.


 No.883568>>883663 >>884968

>>883530

>It's not an introduction any more than the "Cosmos" documentary is an introduction to being an astrophysicist.

Not an argument.


 No.883598

>>870238 (OP)

cs50 is hard, try " How to Design Programs" if you are dumb like me, I also got BTFO by cs50 initially.


 No.883634

>>883303

Work-Hard-Get-Bitches-State-Propaganda_the_anime.mkv


 No.883663

>>883568

>Not an argument.

Is that also what you say to women when they reject you?


 No.884968

>>883568

>Not an argument.

found in /pdfs/ btw


 No.886611

>>870238 (OP)

Go learn by doing: https://www.codingame.com/


 No.887500>>888379

>>871900

Why have so many decades passed yet we still use Unix?


 No.888379

>>887500

>codinggame

>requires JavaScript

Jel.

What shit.


 No.890803

>>870238 (OP)

Do not frustrate yourself. Learn everyday a little bit and soon you will be good at it.

Most users drop good gnu/linux distros because of the impatience.

The above sentence is to be taken as a analogy. You should be patient and learn things from the beginning. Do not engage into very complicated and complex projects at first.

The one good thing that helped me is the following: teaching.

If you try to repeat the process of learning while transmitting the learned you learn it way faster. If, like me, you are too much of a hikkiko, record yourself doing it.


 No.890814>>898052

>>870238 (OP)

Learn scripting language like Python or Perl first. Also git gud at the Bash shell. Learning how to use Bash and I/O redirection allows you to make the computer your bitch. You can human-centipede you programs with Bash and become a god.


 No.898052

>>890814

this is good advice, along the same lines I think going through a book like "Introduction to Programming Emacs Lisp", since the payoff with both of these strats will provide immediate utility, along with utility for the rest of your life, even if you don't become a programmer.

and pedagogically, I think cs50 sucks compared to the "Systematic Programming Design" on EdX, which begins with "How to Code: Simple Data".




[Return][Go to top][Catalog][Screencap][Nerve Center][Cancer][Update] ( Scroll to new posts) ( Auto) 5
59 replies | 8 images | Page ?
[Post a Reply]
[ / / / / / / / / / / / / / ] [ dir / arepa / builders / hydrus / lewd / marx / miku / roze / stoa ][ watchlist ]