*crack*

*crack*
*sip*
#include

Attached: boomerc.png (1281x648, 380K)

Got any of them zoomer memes

first semester of my CS degree and we're starting off with C and Assembly

>#include
>Ok, let's get started with the GUI!

Attached: OocFDoPc2iFiylWxzIHux0JzVZKEufpxW4pcBsiJP1M.jpg (320x363, 23K)

sounds reasonable

it's important stuff, pay attention on the classes kid!
C is good for understanding procedural programming in general. Assembly will help understanding how the cpu works.

get with the times dad

*loads 200 mb text editor*
*Breaks 30000 websites by removing left-pad package from npm*
*uses meme framework that got popular last week and will be forgotten in 3 days*

Attached: zoom.gif (478x350, 84K)

Starting by learning assembly is kind of silly. Assembly is really just another language and sometimes it is even interpreted see modern x86 CPUs. You can learn computer architecture and why conventional computers are the way they are later. C is fine though, as it introduces you to all the confusing but necessary design choices when making a language. i.e. integer division, unitialized variables are initialized to garbage, etc.

int main(int argc, char * argv[])
{

Attached: easytoinstall.gif (420x315, 456K)

*Programs in C*

Attached: oxMdJ7P.jpg (3547x2550, 3.71M)

we've just started with java and assembly
and the "not allowed to use for loops yet" meme is actually a thing

That's what you get for not using
if (boolean)

Why can't we have new memes anymore?

Attached: cancer.png (500x712, 442K)

Prove your autism and use a goto or recursion.

use while() loops

Gigabytes of (quality) code is written in C, and is not going away any time soon, better pay attention in class kiddo.

#define sip int
#define crack void

that's actually pretty cool, I think it'll give you a really solid foundation

>not COBOL

listen here kid...

are you working with COBLOL?
any notable projects?

good

Jow Forums is dead

No, it's not another language. It's as close as you can get to the hardware without actually writing binary opcodes. It'll give him excellent knowledge of how software really works at the CPU level.

Attached: 1526745685852.png (900x729, 129K)

is that uncle jun?

Attached: 47325ca514d1b579bc826dd96729b394.jpg (488x750, 39K)

meant for

>As close to the hardware as you can get
Like I just mentioned x86 is interpreted and is converted into microcode. It tells you nothing about how computers really work. If you want to learn how they actually work you read a book on computer architecture since it covers things like cache, branch prediction, and other things abstracted in the machine code level. Like I said assembly code is really just another language there is nothing enlightening about learning it.

you mean

>It'll give him excellent knowledge of how software really works at the CPU level.
as someone who knows how software works at the CPU level it really doesn't because the best coding practices of most high-level languages are thought up with those in mind anyway

>not using
gay

> cache
> branch prediction
they are only transparent optimization techniques. A programmer of course should know how to write code that doesn't trash the cache, etc.

>Like I just mentioned x86 is interpreted and is converted into microcode. It tells you nothing about how computers really work
it tells you alot about how computers really work

Any IDE or static code analyzer would pick up using an assignment operator where a comparison operator should be used. Plus, that either shouldn't compile or it would at least give an error during compilation since you are resigning a value to a statically declared variable.

Attached: 1507666466025.jpg (352x360, 18K)

>Any IDE or static code analyzer would pick up using an assignment operator where a comparison operator should be used
thats a valid expression in many languages, returns true if the assignment worked

#include

Attached: img027.jpg (415x456, 76K)

Whoops you are right. I had a brain fart and was thinking of a const declaration instead of a static declaration.

If you work on any software that matters considering branch prediction and data locality should always be at the forefront of your mind. What underlying machine instructions your code compiles to doesn't really matter. The only way I think it helps is it gives you some idea of what the compiler can optimize and what it can't, but really you should just read a computer architecture book if you want to know that.

No argument yikes

assembly code is very close to what your computer is actually running. caching is orthagonal to these instructions, and branch prediction doesnt really change the instructions being executed either
you speak from shit you've read on the internet, not experience

int
main
(int argc, char ** argv)
{

When hes unemployable because his peers were learning graph traversal and dynamic programming when he was just grinding malloc and linked lists for eons I wonder if you'll think differently. Theres a reason MIT starts with python.

Nice strawman you're building there. Why would it take somebody 4 years to learn malloc/free? Why couldn't somebody learn graph traversal or dynamic programming as well as low level languages? For some types of jobs, C is necessary. For other types of products, other languages are far superior. If you can't wrap your mind around that, you might be a brainlet.

>unemployable in """""""""data"""""" """"""entry""""""" jobs
yeah great loss

Good, it's the first step to appreciating modern C++, Ada and Rust

I was just making a novel point that people think machine code is as low as it goes when in fact x86 effectively interprets machine instructions and converts them to microcode which is even lower. Mainly I'm just saying knowing assembly code isn't really a useful enlightening skill. People say they learn it because they want to know 'what the computer is doing' when it paints an incomplete picture compared to studying computer architecture which really will give you an amazing understanding about how conventional computers work. The only time you should learn assembly is when you're writing a compiler backend.

Those are still beginning algorithm concepts though. You went to a horrible school if you didn't learn those.

>implying it was ever alive

Warnings are gay, they get ignored easily.

Based.

Cringe.

int main(int argc, char **argv) {

is the only correct way

It still tells you a ton about what the machine is actually doing, even if it isn't everything. Certainly tells you a hell of a lot more than python.

I performed this exact sequence of actions this week

assembly is useful to understand because it's the lowest level of the software layer, the one that you as a programmer can influence. Just because it isn't the lowest level of instructions it doesn't make it irrelevant