Software Development and Programming Careers (Official Discussion Thread)

yseJ

Empire strikes back
Joined
Apr 30, 2012
Messages
44,243
Reputation
2,516
Daps
63,574
Reppin
The Yay
dope thread

Ill bring some of what I said in the other thread here

my recent pet peeve is everyone (non-programmers) trying to learn python as their first language

I guess its cool if they'll stay with python and not do any other lower level languages

but to me, it seems crazy. if they ever go from python to C++ they'll have a culture shock. imo going from basic logic into more advanced logic etc is much more understandable.
when you are trying to do the onion model and peel off one layer at a time you still dont understand a lot of times WHY things are like that at a higher level, by the time you get to the root of the problem, you already forget about that layer
 

yseJ

Empire strikes back
Joined
Apr 30, 2012
Messages
44,243
Reputation
2,516
Daps
63,574
Reppin
The Yay
so most important thing is to code for readability. never, ever code for efficiency. ever. make sure your code is easy to read. that should always be first priority.
thats not even true in java. breh thats nearly a neg-worthy advice

efficiently is really important in general, thats why anything that needs to be reliable, latency-independent is coded in c++ or c

even then, just because we have lots of memory and a lot of computing power nowadays, doesnt mean its ok to be inefficient and hog resources. nowadays every app has dumb memory leaks or reserves more memory than it really needs, it really bugs me.

readability is important, but its not NEARLY as important as being efficient. there are brilliant people out there who write code that is pretty obfuscated but works flawlessly. it sucks for others to maintain it when that person leaves, but it is what it is. obfuscated code that is efficient >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> beautiful inefficient code

but as a matter of experience, good programmers write code that is both elegant and efficient. good coders simplify instead of complicate. and if something needs to be complicated and obfuscated, usually its well documented, at least basic algorithm and why it was done that way.
 

Type Username Here

Not a new member
Joined
Apr 30, 2012
Messages
16,368
Reputation
2,385
Daps
32,641
Reppin
humans
dope thread

Ill bring some of what I said in the other thread here

my recent pet peeve is everyone (non-programmers) trying to learn python as their first language

I guess its cool if they'll stay with python and not do any other lower level languages

but to me, it seems crazy. if they ever go from python to C++ they'll have a culture shock. imo going from basic logic into more advanced logic etc is much more understandable.
when you are trying to do the onion model and peel off one layer at a time you still dont understand a lot of times WHY things are like that at a higher level, by the time you get to the root of the problem, you already forget about that layer


Yea, but going from C to Python is :noah::ahh::banderas: status
 

Arishok

No
Supporter
Joined
Aug 30, 2013
Messages
11,571
Reputation
3,520
Daps
30,419
Reppin
The 'Go
dope thread

Ill bring some of what I said in the other thread here

my recent pet peeve is everyone (non-programmers) trying to learn python as their first language

I guess its cool if they'll stay with python and not do any other lower level languages

but to me, it seems crazy. if they ever go from python to C++ they'll have a culture shock. imo going from basic logic into more advanced logic etc is much more understandable.
when you are trying to do the onion model and peel off one layer at a time you still dont understand a lot of times WHY things are like that at a higher level, by the time you get to the root of the problem, you already forget about that layer
What would you suggest a non-programmer start at? I'm only doing python since I already had it on my computer so I thought to myself, "Might as well learn it." Plus I heard it's good for building a basic 2D mobile game.
 

Type Username Here

Not a new member
Joined
Apr 30, 2012
Messages
16,368
Reputation
2,385
Daps
32,641
Reppin
humans
What would you suggest a non-programmer start at? I'm only doing python since I already had it on my computer so I thought to myself, "Might as well learn it." Plus I heard it's good for building a basic 2D mobile game.

Python is fine man. MIT uses python for their intro to comp sci course and they're one of the top schools in the country. Google also has intro to programming courses using python.

Eventually, you should go mess with C/C++ but you can jump there later.
 

Arishok

No
Supporter
Joined
Aug 30, 2013
Messages
11,571
Reputation
3,520
Daps
30,419
Reppin
The 'Go
Python is fine man. MIT uses python for their intro to comp sci course and they're one of the top schools in the country. Google also has intro to programming courses using python.

Eventually, you should go mess with C/C++ but you can jump there later.
I was taking an Intro to programming course which is why I have Python, had to drop because the professor's and TAs office hours were during my ID class :wow:
 

yseJ

Empire strikes back
Joined
Apr 30, 2012
Messages
44,243
Reputation
2,516
Daps
63,574
Reppin
The Yay
Python is fine man. MIT uses python for their intro to comp sci course and they're one of the top schools in the country. Google also has intro to programming courses using python.

Eventually, you should go mess with C/C++ but you can jump there later.
yeah good schools tend to make their first intro/staple course for CS engineers an interpreted or pseudo-interpreted language (like python), for some reason
I went to Cal and scheme was that course. it was cool, but to a non-programmer Im not sure how helpful that would be.
 
Joined
Nov 30, 2013
Messages
409
Reputation
140
Daps
527
thats not even true in java. breh thats nearly a neg-worthy advice

let a nikka live brehs. read the post i made afterwards. my specific pet peeve is programmer's who code for an 'increase' in efficiency that has no basis in reality and is only in their heads. i'll say it again, if you're writing shytty looking code, you better have a profiler ready so that you can show me exactly why it is i'm spending extra time examining your crappy looking code.

but as a matter of experience, good programmers write code that is both elegant and efficient. good coders simplify instead of complicate. and if something needs to be complicated and obfuscated, usually its well documented, at least basic algorithm and why it was done that way.

good programmers are a dime a dozen my friend. i used to think i was the shyt until i worked at a startup last summer, and got thoroughly murked by some legendary individuals. i'm a much better programmer now, but i don't think i've reached my limit yet. if you want to get really good you should surround yourself, associate yourself with seriously good programmers so that you don't suffer from big fish, small pond syndrome.
 

yseJ

Empire strikes back
Joined
Apr 30, 2012
Messages
44,243
Reputation
2,516
Daps
63,574
Reppin
The Yay
What would you suggest a non-programmer start at? I'm only doing python since I already had it on my computer so I thought to myself, "Might as well learn it." Plus I heard it's good for building a basic 2D mobile game.
do you want to sacrifice some time for better understanding ?

if so, Id actually spend a bit of time (and actually its relatively fast to do nowadays with all online resources) on the big picture on low-level stuff.
basically how a basic cpu works- registers, ALU, memory, clock and cycles, and cache and virtual memory (to lesser extent)

it doesnt have to be super in depth. just so you can understand how a cpu cycle is executed and how all components tie together. once you get that, you can look really quick at assembly

then c and then c++/java, along with unix/OS basics

that would be my approach

again, it might be extremely overwhelming at first, but it'll help you a lot in the long run if you're serious about programming.

but again, Im a low-level kind of guy, so my approach will be different. if you want something practical, you want to start at the opposite end, lol
 
Joined
Nov 30, 2013
Messages
409
Reputation
140
Daps
527
do you want to sacrifice some time for better understanding ?

if so, Id actually spend a bit of time (and actually its relatively fast to do nowadays with all online resources) on the big picture on low-level stuff.
basically how a basic cpu works- registers, ALU, memory, clock and cycles, and cache and virtual memory (to lesser extent)

it doesnt have to be super in depth. just so you can understand how a cpu cycle is executed and how all components tie together. once you get that, you can look really quick at assembly

then c and then c++/java, along with unix/OS basics

that would be my approach

again, it might be extremely overwhelming at first, but it'll help you a lot in the long run if you're serious about programming.

but again, Im a low-level kind of guy, so my approach will be different. if you want something practical, you want to start at the opposite end, lol

i have the same sort of mentality, but you have to understand that if schools decided to take this approach then the drop-out rate would be horrendous. i feel like i would be a better programmer now if i had started out with C or assembly (rather than python) as it really makes you appreciate what goes on underneath the hood. also going from C, x86 assembly to java, python and the other high-level :flabbynsick: programming languages is much easier than the reverse.

python is easy to use, but it's ease of use and accessiblity is an illusion sort of. if you're an anal retentive individual who likes knowing what goes on underneath all the abstraction then you'll quickly get tired of it. i'm not the biggest python fan, and i'm also slowly getting tired of java and the extra layer of abstraction that results from it being dependent on JVM.

in summary, @MarsPunka, don't do this. familiarize yourself with python first and then go low-level. the reverse is not for the faint of heart. it's like playing dark souls on hard.
 

yseJ

Empire strikes back
Joined
Apr 30, 2012
Messages
44,243
Reputation
2,516
Daps
63,574
Reppin
The Yay
i have the same sort of mentality, but you have to understand that if schools decided to take this approach then the drop-out rate would be horrendous. i feel like i would be a better programmer now if i had started out with C or assembly (rather than python) as it really makes you appreciate what goes on underneath the hood. also going from C, x86 assembly to java, python and the other high-level :flabbynsick: programming languages is much easier than the reverse.

python is easy to use, but it's ease of use and accessiblity is an illusion sort of. if you're an anal retentive individual who likes knowing what goes on underneath all the abstraction then you'll quickly get tired of it. i'm not the biggest python fan, and i'm also slowly getting tired of java and the extra layer of abstraction that results from it being dependent on JVM.

in summary, @MarsPunka, don't do this. familiarize yourself with python first and then go low-level. the reverse is not for the faint of heart. it's like playing dark souls on hard.
well, depends on what schools

berkeley basically had 3 'intro' courses for cs engineers that were mandatory, each a semester each

first one was scheme, basically super abstract and lots of lambda expressions
second one was mostly what I wrote, c+assembly+ hardware structure. I remember one project (two weeks to do) was basically to emulate nix directory and file structure in c:sadbron: that was FRESHMAN year lol

third one was OOP and java, I APed out of that thankfully- still remember a facebook group picture of huge cup of coffee the professor was drowning everyone in

all 3 were 'weeder' courses. so top schools actually want to weed out people who arent good enough. so the scope of programming interest is quite important to know where to start.

I know a lot of people who got into programming because they thought it was cool and they liked being computer users and pseudo hacking with kiddie scripts. they later regretted that decision dearly.

and yeah, java fukking sucks. any server built on java is :camby: status
 

Sane

All Star
Joined
Dec 10, 2013
Messages
4,718
Reputation
1,320
Daps
8,477
Reppin
London Town
:russ: starting of low level will cause most people to lose interest. It's better for most to start of with an easier language to capture their interest and if they get the programming bug (no pun) then they get into the lower level stuff for better understanding of what goes on under the hood and so on.
Code by Petzold is a good book for understanding architecture of computers. Lots of interesting stuff in there, explains things like how binary and morse code are related, logic gates, switches all that
 

yseJ

Empire strikes back
Joined
Apr 30, 2012
Messages
44,243
Reputation
2,516
Daps
63,574
Reppin
The Yay
let a nikka live brehs. read the post i made afterwards. my specific pet peeve is programmer's who code for an 'increase' in efficiency that has no basis in reality and is only in their heads. i'll say it again, if you're writing shytty looking code, you better have a profiler ready so that you can show me exactly why it is i'm spending extra time examining your crappy looking code.
its all relative imo

in an embedded system, timing might be everything, so in there, efficiency is king

if youre making a java program and are frugal about 16kb of memory and write ridiculously complicated code that is impossible to read, thats bad as well

but for most programs, running out of memory on a shytty-run time complexity algorithm or a crash or slow performance is far worse than code that is hidden. yeah it sucks for people who have to go through code, cover it, whitebox test and profile it, but for the consumer as long as it works fast and as intended is way more important. since focus of pretty much any profit-based company is on customers, readability isnt at top of their list, unless its huge projects with billions+ of lines of code.
 

yseJ

Empire strikes back
Joined
Apr 30, 2012
Messages
44,243
Reputation
2,516
Daps
63,574
Reppin
The Yay
:russ: starting of low level will cause most people to lose interest. It's better for most to start of with an easier language to capture their interest and if they get the programming bug (no pun) then they get into the lower level stuff for better understanding of what goes on under the hood and so on.
Code by Petzold is a good book for understanding architecture of computers. Lots of interesting stuff in there, explains things like how binary and morse code are related, logic gates, switches all that
like Ive said, doesnt have to be indepth.

a basic understanding of whats going on is really helpful, and a lot of things you simply dont think about when you write in high level language, that you do when you're aware.

there are people out there that claim to know programming... who cannot tell me what a memory access violation means :snoop:

when you're writing high-level, you hide whats underneath. its cool because something like python or c# can be used for simply getting shyt done.
but also youre oblivious to underneath problems and bottlenecks that can arise from your high-level code, because youre given impression of infinite resources and flexibility.

effiency and resource usage comes to you when scaling high-level code, and it bites you back in the ass.
 
Top