[–]▶ No.843672>>843723 >>843727 >>843810 >>843820 >>843928 >>843976 >>844047 [Watch Thread][Show All Posts]
>talk to a girl who is in her last semesters of software engineering (basically doing her intership)
>did you learn C/C++?
>No, we learned java and python
>I'm trying to self teach myself data structures and I hope to make a linked list on java.
>what's that? a list? do you mean a checklist (some literal checklist in her java gui builder)?
>I'm sure she thinks she's hot shit because she took software engineering (literal top 1% of girls).
▶ No.843675
▶ No.843695
>I'm sure she thinks she's hot shit because she took software engineering (literal top 1% of girls).
i'm sure she's going to immediately get hired by jewgle for 100k/year
▶ No.843704>>843739 >>843796 >>843802
it's too bad that software engineering became a meme degree... oh wait.
Electrical and for the most part computer engineering are the degrees that aren't meant for brainlets. These both require you to learn C++ in your first term.
▶ No.843711
This is why giving women rights was a mistake.
▶ No.843712
This is a cuckchan thread and you should feel bad, but I'll let it slide just this once since I love talking about retarded women.
▶ No.843723>>843729
>>843672 (OP)
>I'm trying to self teach myself data structures and I hope to make a linked list on java
< literally CS 102
▶ No.843727
>>843672 (OP)
She will be immediately affirmative action'd and will make 6 figure salaries.
▶ No.843729>>843808
>>843723
No shit nigger, you self teach something if you're not in college.
▶ No.843739>>843743
>>843704
Have you seen C/C++ written by computer engineers? The worst Pajeet code is way better.
▶ No.843743
>>843739
I'm well aware but at least they try to teach something of value. CE is pretty shit tier as well but at least it keeps scares off most of the braindead retards who somehow make it into software engineering.
▶ No.843763
>whomst'd've are'st you'res quoting's?
▶ No.843765>>843812 >>843818 >>843907
I'm thinking of spending the next 4 years of my life getting an Electrical Engineering degree. Is it worth it?
▶ No.843776
>another sepples drone
LOL
▶ No.843789
1. Become hot
2. Teach programming
Congratulations you now have an army of beckies.
Stop complaining faggot.
And actually teach them to be good programmers
▶ No.843795
she will get hired while you sit around in forever NEETDOM
▶ No.843796
>>843704
I'm a Computer Engineering undergraduate (actually, my course it's just an EE course with some CE classes added on top) at my third and last year, but I've yet to see a single line of C or C++
Maybe we are going to see something in the postgrad
▶ No.843802>>843806 >>843811
>>843704
We had Javascript and HTML as introduction to programming in EE course. Then intro to C in second semester. I studed exactly 0 hours for both courses and got highest possible grades without any effort. I actually expected that we would learn something about algorithms and data structures, but we just spent all the time learning about syntax and arrays, we haven't even mentioned linked lists, nothing about big O notation, no recursion, heck there was even nothing about OOP or functional programming, well they didn't even explain differences between paradigms for that matter, just "write this to do this". Oh and what realy ground my gears was when professor said "We won't mess with the compilers, just download Visual Studio." - How is installing 16GB IDE easier than installing gcc and typing 2 words in the terminal? And yes before you ask some people actually managed to fail the course. Programming course should be at least as hard as mathematics course. If I can pass it without doing any work then it's way too easy.
▶ No.843806
>>843802
This has literally been me in every CS qualification I've ever done, which is great because I can spend my entire lessons coding my own stuff and just pop in when I hear something I might not fully understand.
▶ No.843808>>843844
>>843729
What are you, underage?
▶ No.843810>>843816 >>843844
>>843672 (OP)
But did you fuck her or did you pussy out?
▶ No.843811>>843833
>>843802
Protip: that's exactly how introduction to programming ought to be. Algorithms, data structures, non-imperative programming paradigms, programming development environments and practises, can all live in their own dedicated classes.
▶ No.843812
>>843765
I was surprised how many more women there are in EE than in CS and how much more competent they are. I could say I fell in love with one of my professors. EE girls >>>>> CS girls.
▶ No.843816>>843817
>>843810
>Fucking low IQ roasties
Kys tbh famalam
▶ No.843817>>844028
>>843816
Your virginity is really not that precious.
▶ No.843818
>>843765
>implying you can actually graduate on time
What are you, a burgerfag?
▶ No.843820>>843845
>>843672 (OP)
When meeting with my freshman advisor when I started my CS degree, my lack of knowledge on linked lists was the only thing that stopped me from being able to skip the CS 101 class. It was the kind of thing that advanced HS students learned, except I went to a shitty school. But was a fundamental part of the most basic CS class.
How the fuck do you get a degree without knowing linked lists? It's the most basic function of a fucking pointer outside of the instruction pointer.
▶ No.843833
>>843811
Yes, dedicated classes for those topics that cover subject in depth are a good idea, but there is no reason to not mention some basic concepts in introduction to programming. My idea of what introduction to programming should look like is similar to http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-1.html Remember, we are talking about courses on university level, not high school (even though HTDP is taught at some high schools, so there is no complaining that it's too hard). I don't know why we wasted time learning about DOM, when students didn't have any idea of what an object is. Lecture was literary "write .hide() to hide this text...". No matter how you put, it this was not a good introduction to programming.
The problem I've seen when trying to help other students, was that they had no clear idea of concept hiding behind syntax. If course had focused more on basics of "scary algorithms" and "arcane data structures" people would have actually learned something useful. Only thing they've learned is how to copy homework from their facebook group. Which is another thing that pissed me off, since seing people using their phones to photograph the screen and uploading those pictures with code to facebook made my skin crawl. But, ultimately it's a waste of time complaing about any of this: you can study whatever you want by yourself.
▶ No.843844>>843869
>>843808
>falling for the education jew
lmao retard.
>>843810
she's my cousin and conservative christian, so incest is wrong for her or some shit like that.
▶ No.843845
>>843820
because she went to a shitty degree mill college.
▶ No.843849
>talk to a girl
stopped reading right there
▶ No.843869>>843871
>>843844 (check'd)
>lmao retard
You're right, anon.
I'm in fact on the verge of dropping out.
▶ No.843871>>843883 >>843903
>>843869
nobody will ask you a degree if you build your own bussiness anon.
the jew scam of college is a scam to be a wageslave.
▶ No.843883
>>843871
This.
t. did nothing with my degree except please my parents. built my unrelated business. everyone assumes I have a degree in whatever service I provide them at that time.
▶ No.843903
>>843871
Not entirely true.
There are pajeet-free environments where an academic background is required.
▶ No.843907>>843918
>>843765
EE is heavily outsourced to India here in the USA. If your heart is set on EE make sure you take some business, marketing, and management courses. EE jobs in the US right now are essentially spending all day on phone telling street shitters what to do and then fixing t he bag of shit when it's "finished". Essentially a dead field. Maybe get a materials science or other applied science degree.
▶ No.843918
>>843907
You do realize that EE is a rather broad degree. There are plenty of jobs that require a local presence and can't be outsourced to India.
▶ No.843928>>843931 >>843936
>>843672 (OP)
That's retarded. I just signed up for my first classes in a mechanical engineering program and "introduction to c programming" is in my first semester class schedule. What school did she go to? It must be shit. You can't tell me my ME class schedule requires more competency than her goddamn software engineering program.
▶ No.843931>>843941 >>844015 >>844029
In other news, behold my shitty garbage linked list.
>>843928
she went to those literally unversity of phoenix garage colleges.
▶ No.843936
>>843928
Even at competent schools SE is taught like this.
▶ No.843941
>>843931
>behold my linked list
>3 tabs
>LinkedList.java is not the open one
behold, a linked list in OCaml:
type 'a linked = Nil | Cons of 'a * 'a linked
▶ No.843976
>>843672 (OP)
>talk to a girl
exit();
▶ No.844015>>844017
>>843931
Why is an external library being used to display a linked list in a fucking GUI?! Wtf is this?!
▶ No.844017>>844018
▶ No.844018
>>844017
>Category: Gaming
>>>/v/
▶ No.844028>>844297 >>848595
>>843817
Except it is, I don't have time for dumb whores.
▶ No.844029
>make a linked list on java
It's already part of the standard library.
>>843931
>using eclipse
>not using generics for your linked list implementation
▶ No.844030>>844032 >>844035
STEM has been highly diluted
Less and less people do things outside of school and all the student does is learn to pass the exam
Me and buddy of mine are both electrical engineers working on prof project (that we get money for) and are currently gathering a team for uni funded project
We rubbed sholders with a lot of older experienced students that are going out of uni for a year or two.
They fucking don't know about Ohms law or Thevenins law.
They never seen etchant or made any circuit out of desire to make it.
I spent 50$ of my last money on ebay electronics parts and they probably spent it on going to caffees and playing billiard
▶ No.844032
>>844030
Really? I'm 99% into software related stuff but even I know Ohm's law, though I must admit that I had never even heard of Thevenins law before. Despite doing mostly software stuff I've gone through the process of designing a pcb and having it fabricated to compliment some software I was writing.
▶ No.844035>>844037 >>844240
>>844030
i'm pretty sure every field has always been 'diluted'.
young people having fun and spending money and time on socializing going out instead of electronics and shitposting on imageboards, what a horrifying thought.
you are like r9k without the self-awareness
▶ No.844037>>844039
>>844035
r9k is self aware? Since when?
▶ No.844039
>>844037
maybe that's not the right word, but they hate themselves and want to die, or at least they should
▶ No.844041>>844044
>second year of CS
>learned C and how to debug both C and assembly with GDB
Most colleges are shit, but not all of them.
▶ No.844044>>844049
>>844041
Did your college hand out barf bags in that class?
▶ No.844047>>844052
>>843672 (OP)
>get a degree
>only knows python and java
I'm teaching myself python now as my first language and she completed a four year program of just learning that? What the hell?
▶ No.844049
>>844044
No, it wasn't necessary since every class before it involved Java. Felt like a breath of fresh air.
▶ No.844052>>844053 >>844070
>>844047
But can you fizzbuzz?
▶ No.844053>>844054 >>844076
>>844052
I started learning recently, so no.
▶ No.844054>>844055
>>844053
Should have gotten a four year degree
▶ No.844055
>>844054
True. I have one in Neuroscience but this will help in experiment construction.
▶ No.844070>>844091
>>844052
fizzbuzz is nothing. a real challenge is fizzbuzz(n):
(* an implementation of fizzbuzz(2):
a fizzbuzz containing *2* errors *)
let fizzbuzz () =
for i = 1 to 100 do
match i mod 3, i mod 5 with
| 0, 0 -> print_string "Fizzbuzz"
| 0, _ -> print_string "Fizz"
| _, 0 -> print_string "Buzz"
| _, _ -> print_int i;
print_newline ()
done
error #1 is that "Fizzbuzz" != "FizzBuzz". error #2 is obvious with OCaml knowledge or a look at the output.
▶ No.844076>>844082
>>844053
I amend my statement. Yes I can fizzbuzz.
▶ No.844082>>844087
>>844076
Welcome home. You are going to hate it here. Especially after you have realized that you have nowhere else to go.
▶ No.844085>>844094 >>844259
Why am I allowed to do this?
var=''
for i in range(0, 100):
if i%3==0:
var+='Fizz'
if i%5==0:
var+='Buzz'
if var=='':
var=i
print(var)
var=''
Also where do I go to learn how to program?
▶ No.844087
>>844082
I'm oddly excited about this.
▶ No.844091
>>844070
>the real challenge is to do it wrong
but why
▶ No.844094>>844096 >>844259
>>844085
>output for i=0
>no output for i=100
you have failed, anon.
▶ No.844096>>844098 >>844206 >>844259
>>844094
sed -i s/'0, 100'/'1, 101'/g fizzbuzz.py
Why do I have to add 1 to my second argument in the range function?
▶ No.844098>>844206 >>844259
>>844096
python's behavior here is usually what people want. But, gosh, it's not very intuitive is it? Not something I'd expect from a language designed to be easy to learn. Hmm hmm hmm. Well at least the language has no weird stuff like generators, list comprehensions, decorators, subtle tuples, a meta-object protocol, += operators (Guido didn't want those; ancient Python lacked them and most of the rest of this feature list), case sensitivity, 1/2==0...
▶ No.844206>>844229 >>844259
>>844096
Because it starts counting at 0, and it's extremely convenient for range(100) to yield 100 values. It starts counting at 0 because indexing starts at 0. I'm not sure if indexing from 0 is actually a good idea, but almost all languages do it. I need to use Lua some more to see how 1-indexing works out.
>>844098
>1/2==0
Fixed in Python 3.
Decorators are fine because they're really easy to use (not implement) even without knowing the details of how they work. By the time you do need to know the details it's probably not too hard to wrap your head around them.
People get the hang of list comprehensions pretty quickly in my experience and there are always ways to do without.
I don't think case sensitivity is that much of a problem for beginners, and it's much better for everyone else.
I don't like how Python pretends tuples are lists with parentheses instead of square brackets.
Most of the other things on your list are optional complexity, it's fine to have them as long as you don't need them before you're ready for them. Python isn't created for teaching, it's used for that because it happens to be good for it. Being easy to learn is not a terminal goal.
▶ No.844229>>844234 >>844340
>>844206
>I'm not sure if indexing from 0 is actually a good idea, but almost all languages do it. I need to use Lua some more to see how 1-indexing works out.
Only languages based on BCPL and C index from 0 because arrays are based on pointer arithmetic. Fortran, Cobol, Algol, Basic, Ada, PL/I, Pascal, Eiffel, Snobol, etc. all index from 1 or have the option to let you choose per array. You say 1..100, not 1..101 with 101 excluded, and you say Monday..Friday, not Monday..Saturday with Saturday excluded. It also makes more sense when you consider that a lot of types in a computer are finite. What if you want Tuesday to Sunday? How would you write that if you had to use exclusive bounds? What day comes after Sunday that you could say "1 day less than" and get Sunday?
▶ No.844234>>844413
▶ No.844240>>844257
>>844035
>just socialize instead of learning things XD
This is good bait
▶ No.844257>>844745
>>844240
You need to do both. Getting drunk alone doesn't count.
t. not that other anon
▶ No.844259>>844260 >>844336
>>844096
>>844094
>>844098
>>844085
>>844206
Yet people still use Python2.x when 3.x is available and superior.
▶ No.844260
>>844259
Do you use Python? Half the posts you're replying to have nothing to do with 2 versus 3.
The main reason to use Python 2 is that a ton of existing software is written in it.
▶ No.844261>>844262
I still want to know why I'm allowed to increment a string by another string. Is it an alias for append? What real-world use is there for the feature?
▶ No.844262
>>844261
That's how you concatenate strings in Python. It's not an alias for append, strings don't have an append method.
"x += y" is generall equivalent to "x = x + y".
Other languages that let you do that include Pascal, Java, Ruby, Javascript and C++. Perl and PHP let you concatenate strings with a . operator. Haskell provides a ++ infix operator.
People couldn't tell what you were asking about because it's not at all unusual.
▶ No.844297
>>844028
Sounds like sour grapes, virgin-kun.
▶ No.844336>>844343
>>844259
>3.x
>superior
It's the same shit but with fewer libraries and worse backwards compatibility. There's literally zero reason to use it.
▶ No.844340>>844342
>>844229
The reason the languages that come from math rather than engineering index from 1 is because mathematics didn't originally have a 0 and even though they figured that out over a thousand years ago they stuck with the notation. On computers, it makes no sense to index from 1 as it's inefficient. While you can hide the inefficiency when treating the index as some sort of index type, there will be times where you need to convert the type (e.g., user input, serialization, etc.) and you'll introduce pointless decrements at that point.
▶ No.844342>>844345 >>844350
>>844340
No, 1-indexing makes perfect sense, mathematically. The highest index equals the length of the list. 0 isn't particularly sensible.
Indexing from 0 gives you the abhorrent property, in C, that a[b] == *(a + b) == b[a]. If you're working with pointers and you hate abstraction then it makes sense, maybe. Any effect decrementing has on efficiency might as well be a rounding error, it doesn't matter.
▶ No.844343>>844362
>>844336
Proper unicode support, formatting string literals, sensible division behavior, range dict_keys etcetera are lazy, generalized unpacking, optional static typing, print is a real function, syntax for declaring classes is less stupid, and a lot of other things.
▶ No.844345>>844346
>>844342
>a[b] == *(a + b) == b[a]
You don't actually know C, do you?
>Any effect decrementing has on efficiency might as well be a rounding error, it doesn't matter.
Ah yes, math people. This is why we don't let you write languages or network services anymore.
▶ No.844346
>>844345
>You don't actually know C, do you?
You don't believe me? Watch this:
$ cat test.c
#include <stdio.h>
int main (void) {
int i = 3;
int *p = &i;
printf("%d %d %d\n", p[0], *(p + 0), 0[p]);
}
$ tcc -run test.c
3 3 3
▶ No.844349
>>844341
The image is to show syntax highlighing only and has errata.
[[$]] containers.
;;-> Linked List
This is a simple linked list using the Listable trait which allows you to add
this trait to your struct.
<-;;
$::Listable < &( ->
prev: Listable*?.
next: Listable*?.
).
$::LinkedList(T) < #( ->
$::count: i32.
$::head: Listable(T)*?. ;; Listable(T) means that the type implementing
;; Listable must be T. ? is for $::[[utils]]::Optional.
$::tail: Listable(T)*?.
$::add < %({&this item: Listable(T)* after: Listable(T)*?} ->
!this::head? (
this::head = item.
this::tail = item.
$!. ;; return void
)
!after? after = this::tail.
after::next::prev = item.
item::next = after::next::prev.
item::prev = after.
after::next = item.
count++.
).
$::remove < %({&this after: Listable(T)*?} Listable(T)*? ->
after == list::tail? $=nil.
item: Listable(T) = !after? list::head : after::next.
item == list::tail? list::tail = item::next.
item == list::head? list::head = item::next.
item::next::prev = after.
after::next = item::next.
item::prev = nil.
item::next = nil.
item).
;; whatever else like find, etc.
).
[[$]] main.
$<[[containers]]::[Listable PriLinkedList].
$<[[iterators]]::while.
$<[[string]]::[S String].
$<[[io]]::[getnum print print_line].
$::main < %({argc: i32 argv: u8**} ->
;; PriLinkedList is a wrapper to make primitive types work with lists.
new list: $::PriLinkedList(i32).
$::print_line"Enter numbers:".
$::while{%(i32->1) $(->
$::print"> ".
list::add $::getnum!.
$::print_line{S"The list: {:s}"!::format{String::join{list::map%({i}->i::item)}::decompose!}}.
)}.
;; destructor autocalled
0).
▶ No.844350>>844413
▶ No.844362>>844367
>>844343
>Proper unicode support
There was nothing wrong with str treated as utf8 like in C and Linux.
>formatting string literals
.format() was backported.
>sensible division behavior
Integer division being special-cased to change the type is not sensible.
>range dict_keys etcetera are lazy
xrange() and .iteritems() were fine.
>generalized unpacking
Unpacking should be avoided when possible as it leads to unreadable code.
>optional static typing
Available in 2.7 via mypy.
>print is a real function
print() was backported.
>syntax for declaring classes is less stupid
Bikeshed.
▶ No.844367>>844377
>>844362
>There was nothing wrong with str treated as utf8 like in C and Linux.
>>> print("café"[3])
�
>.format() was backported.
That's not what I meant. This is what I meant:
>>> f"x = {3}"
'x = 3'
>Integer division being special-cased to change the type is not sensible.
It is in a dynamically typed language. Maybe it would even be sensible in some statically typed languages. When you divide numbers it's usually much more important whether the result gets rounded or not than whether the types get preserved. / and // is a much better way to categorize what should be done than float and int.
>xrange() and .iteritems() were fine.
That kind of feature duplication is bad, especially if the most obvious version is very inefficient. dict_items also has a much better repr.
>Available in 2.7 via mypy.
In a less pleasant way.
>Bikeshed.
"class Foo:" is better than "class Foo(object):". It's not a big deal but it is an improvement. Small improvements add up.
▶ No.844377
>>844367
>using non-unicode methods on unicode literals
The only problem here was you, son. How do you think people do that in C?
>f"x = {3}"
I'm not sure what the point of this thing is since non-trivial programs load their format strings dynamically so they can be translated. It seems like it has very few uses, and would be better written with format() so the code doesn't have to be significantly changed as it evolves. I'd have intentionally left that out of a language as it seems like a novice trap.
>It is in a dynamically typed language.
Yeah, no. Dynamic typing doesn't matter, if anything that argument gets made about the visibility of type systems. Python isn't a language that hides types, I can specifically cast the inputs to int yet I get a float as it's been special-cased. It's inconsistent with the rest of the language as they didn't special-case the other operators, e.g. 3<<1 vs 3.0<<1. It was a mess before, but now it's more of a mess and with an additional // operator.
>In a less pleasant way.
It's pretty unpleasant in both. TypeVar is the punchline to an "if python devs had designed C++" joke. I don't expect to see it used.
▶ No.844393>>844395
▶ No.844395>>844417
>>844393
Grats on following the tutorial, literal BRnigger. Now kill yourself.
▶ No.844413>>844438
>>844234
>>844350
The Fortran, Ada, Pascal, Algol, Cobol, PL/I, Basic, etc. way (Dijkstra's "convention c)") is the only way that makes sense. Leaving out the upper bound is just as nonsensical as leaving out the lower bound and saying 1 to 5 excludes 1 and really means 2, 3, 4, and 5. If a place is open Monday to Saturday, it is open on Saturday. If it wasn't, they would have said Monday to Friday. When someone says "A to Z" they mean the whole alphabet including Z. That is exactly how these languages treat array indexing, ranges, loops, subtypes, slices, etc. There are also other reasons, like the length and upper bound being the same, and returning 0 when something is not found.
▶ No.844417
>>844395
damn.
those are videos my nephew liked.
▶ No.844438>>844447 >>844736
>>844413
In these languages, you indeed say "x to y", with syntax. In Python though it's just range(). The inclusive/exclusive conflict is one that tracks a larger conflict between a "programs should be like natural language" and "programs should be like math".
▶ No.844447>>844513
>>844438
Python is a weird mishmash of things. It has the 'x if y else z' syntax but then also range(). Some things are OO like "".format(), some things are procedural like len(""). It's not as bad as rust when it comes to 'dump every language feature into a pot' design, but it's still a hot mess.
▶ No.844513>>844524
>>844447
The inconsistency between .format and len is not at all arbitrary. .format is for strings, and only strings, so it can be a method of string objects. But you need to be able to get the length of anything that has a length, no matter what kind of object it is, as long as it's iterable. .format is OOP, len is more in the realm of duck typing.
The ternary if then else is syntax, but range is just a built-in function.
▶ No.844524
>>844513
>The inconsistency between .format and len is not at all arbitrary.
No, it is. len() isn't defined for all types, so why does it accept all types? C++ doesn't do this for the same concept with .size(), it just defines it as part of the types where it would be valid. Python isn't sure if it wants to be procedural or OO and this kind of wonky design is all over the language.
▶ No.844736
>>844438
>In Python though it's just range().
In Python, 10 in range(1,10) is false, but in Pascal and Ada, 10 in 1..10 is true.
>The inclusive/exclusive conflict is one that tracks a larger conflict between a "programs should be like natural language" and "programs should be like math".
Natural language and math are both inclusive. Summation and product are inclusive. Integer intervals are closed in math. I don't think there is any conflict between natural language and math.
▶ No.844745
>>844257
but what if im getting drunk with you guys? thats the most fun part of the week
▶ No.845000
What do you guys think about an EECS degree like that offered at Berkeley? Is it worth it?
▶ No.848595
>>844028
Then prepare to keep your virginity forever.
AWALT