[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

Programming Beginner Guidance.

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 64
Thread images: 12

File: Starting Strength.jpg (29KB, 260x340px) Image search: [Google]
Starting Strength.jpg
29KB, 260x340px
Hi /g/ I was hoping you could help me.

Is there anything in the tech world that is equivalent to Starting Strength?

Starting Strenght is a *generally* accepted program that allows a complete novice to gain their bearings and have a general understanding+basis for the strength training world. It mostly skips all the bullshit and gives you a basis thats hard to completely discredit with detractors usually resorting to nitpicking.

Basically I'm looking for the programming equivalent of that. Can anyone help?

If its not specifically programming anythat will reasonably help me get a job will work. I have an interest specifically in programming but any qualifications or the like that I should look into in order to prove myself a useful member of society would be of use.

I'll be around for quite a while hoping some kind of discussion gets going so myself (and possibly others lurking) can get some no bullshit direction.
>>
There isn't really a generally accepted way to get into programming. The best thing you can do is learn HTML and CSS, then Javascript and go from there.
>>
install gentoo
>>
The Starting Strength of programming is SICP.
>>
File: image.png (732KB, 926x460px) Image search: [Google]
image.png
732KB, 926x460px
>>57169106
>he fell for the SS meme
>>
JK though SS is a good program to get a base going as long as you add upper body equivalents

Also Stallman is our Rippetoe
>>
>>57169106
C - How to Program Deitel & Deitel
>>
>>57169182

is this fucking true?
>>
>>57169106
I would suggest starting off by learning linux kernel development.
>>
>>57169106
Just keep learning python. You don't want programming. You want instruction. Demonstrations. Have fun.
>>
>>57169266
This. Start with a function called BUG_ON()
>>
>>57169106

don't even fuck around with [insert meme/webdev trash/pajeetshit here]

install a linux distro, probably ubuntu

get code::blocks by making literally 3 clicks, start using GCC

if you want a book read SICP

maybe read "art of computer programming: bitwise tricks" by Don Knuth if you want to understand how computers really do
>>
>>57169182
>html
>css
>programming
this os probably bait but its painful to know people like this actually exist
>>
Automate the Boring Stuff
>>
>>57169106
Learn You a Haskell for Great Good!
>>
>>57169256
No lol
>>
Unfortunately you have asked a bad and useless question, OP. There are a lot of different programming paradigms and a million different reasons to program. The language you choose is hardly relevant (and don't listen to people who recommend something so you don't get "bad habits"). If you want to make video games for the Sega Genesis, I'm going to give you different advice then if you want to prove theorems, and different advice still if you want to be the next Zuckerberg (in which case my advice would be to fuck off)
>>
>>57169106
So you want to learn programming?

Pick a starting language. For beginners, there are generally two recommended "programming families" that you can choose to start learning:
-Dynamically typed/interpreted programming languages, such as: Python, Perl, Ruby
-Statically typed/compiled programming languages, such as: C, C++, C#

These are amongst the most popular languages in use worldwide, including 4 from the top 5. Both approaches are perfectly fine, and well-documented.
-Dynamically typed programming may be a bit more flexible, convenient, and forgiving. It is more popular in academia.
-Statically typed programming is a bit more suited for making general applications. It is more popular in industries.

Cannot decide? Flip a coin.

If you choose statically typed/compiled programming, you may want to start with C, then pick up C++. C is very well documented, and teaches many universal programming concepts. C++ is based on C, and adds new concepts. Sources:
For C:
The C Programming Language (K&R)
C Primer Plus (Prata)
http://www.cprogramming.com/tutorial/c-tutorial.html
http://www.learn-c.org/

For C++:
http://www.learncpp.com/
http://www.cplusplus.com/doc/tutorial/
http://www.cprogramming.com/tutorial/c++-tutorial.html
http://en.cppreference.com/
https://isocpp.org/faq

If you choose dynamically typed/interpreted programming, you may want to start with Python. It is very easy to pick up. Here are some good sources:
http://www.learnpython.org/
http://www.codecademy.com/en/tracks/python

>BUT I WANT MORE SOURCES!
Read: https://wiki.installgentoo.com/index.php/Programming_resources

>BUT I WANNA START WITH [language x] INSTEAD!
Sure, if you like. But the languages above are considered good for beginners.

>BUT I WANNA MAKE A COOL WEBSITE!
Learn HTML, CSS, and Javascript.

>BUT I WANNA MAKE iPHONE GAMES!
Learn Objective C and/or Swift.

>BUT I WANNA MAKE ANDROID GAMES!
Learn Java.

>BUT I WANNA MAKE PC GAMES!
Learn patience.
>>
>>57169394
Also: There is no "Starting Strength" in programming, since there are many programming families, and new programming languages come and go. The closest will be "Try C", which is the same as "squatz and oatz".
>>
OP here I realize this is probably going to lead to more questions, I'm currently doing my best to understand everything people have mentioned from google searches. I guess I should make it clear that I'm obviously not very knowledgable when it comes to all this and am just a "family and friends designated tech guy" so my knowledge basically extends to rebooting network hardware, putting together a computer and knowing that you can't fight a hacker by sharing a keyboard between two people.

>>57169373
I understand why its a bad question, perhaps theres no reasonable equivalent to my starting strength example. Basically I feel I don't have the know how to really understand what I want to do specifically so its hard to ask specific questions. Is there anything that will help me be more informed even if to diferentiate generally bad advice vs good one?

Some of the suggestions like:
>>57169340
>>57169290
>>57169182
Already seem conflicting and things like:
>>57169271
>>57169340
Are pushing me towards languages without me really understanding why, even >>57169284
is pointing me towards a different OS and while I'm not entirely against the idea I wish I had a reason to sort of know why.

>>57169394
This seems more than reasonable, mainly because it mentions books others have brought up, but (and perhaps this is due to analysis paralysis?) its a bit daunting to "take the wrong path" As such I'll just give myself until this thread dies to make one and hope for the best.

Hopefully that wont mean discussion abruptly ends for the lurkers and the like.

>>57169414
>>57169220
>>57169237
Nice to see theres cross-board understanding I was wondering if my example might cause more harm than good.
>>
Check out processing.org
>>
>>57169457
This guy has some good advice:
>>57169394

I personally would suggest starting with Python.
You'll be able to jump in quicker too (using python's repl).
>>
>>57169457
>its a bit daunting to "take the wrong path"
There is no wrong path to start programming. Learning (and mastering) the basics of C/C++ or Python means that you are learning ~50-60% of all other programming languages.

There are two aspects to programming:
-The syntax. Roughly equal to "the alphabet". I cannot read Japanese. I can read Spanish, but I do not understand it.
-The algorithm. Equal to "the story". I can tell you a story in English. If I knew Japanese, I could tell you the same story.

When you learn any language for the first time, you will learn the syntax of that language, and the algorithms of that language. The syntax of similar programming languages will become very easy, much easier than learning Japanese. The algorithms will be even easier, as you are not learning anything new, just "telling the same story in a new language I just learned".

There is no wrong path to start programming. Just do not start with something that is too esoteric, because no one picks up Navajo as a second language.
>>
>>57169290
Not bait. I know it's not actual programming. It is however a good place start for someone with no experience whatsoever.
>>
>>57169760
is R a good place to start as well?
>>
>>57169106
take a linear algebra course, then take a lambda calculus course, then read the first half of SICP, then git gud at coding
>>
>>57169813
this is literally the best place to start for someone with no experience whatsoever.

if you want to be poor for the rest of your life, go ahead, start with that gay HTML shit. if you want to be a real nigga, learn the language of science, and the language of science is mathematics.
>>
Literally anything Python. Heaps of tutorials out there and free books. Learn those algorithms and you're on your way. C is like doing Greek wresting to get in shape. You can do it, but it's going to be embarrassing and you won't see gains without being raped a few times.
>>
>>57169825
>language of science is mathematics
*tips fedora*
>>
>>57169839
*tips back*
my nigga
>>
>>57169106
Start with html/css. Seriously. It will teach you indentation, how a cascade works, basic classes and IDs, basic hexadecimal values when styling and nesting.
>>
>>57169864
yeah, basically nothing. yet retards like you will still somehow find a reason to feel accomplished
>>
You should definitely start with HTML and CSS. It will make learning an actual programming language much easier.
>>
>>57169883
Are you projecting as hard as possible?

>feel accomplished

Yeah, you're projecting.
>>
The real question: what's the programming equivalent of GOMAD?
>>
>>57169894
i am a poo poo retard, please do not make the big words, my dum dum brain can not handel it
>>
>>57169961
Ironic shitposting is still shitposting
>>
File: 0cwCrP3.png (72KB, 300x300px) Image search: [Google]
0cwCrP3.png
72KB, 300x300px
Try Python using the Processing IDE, it's free and it's really easy to get going. It's very graphics oriented so you can start producing stuff that's "cool" right off the bat. There are tons and tons of tutorials and texts out there for Python, so it's really a good way to start off.

I can hook you up with a good beginners textbook in pdf. if you're interested.

https://processing.org/
>>
>>57169928

3 hours of assembly a day

THOAAD
>>
>>57170122
Sounds like my CompE curriculum circa the mid 90's.
>>
File: 1476580737080.gif (11KB, 304x161px) Image search: [Google]
1476580737080.gif
11KB, 304x161px
>If you want to make money
Java
>>
>>57170213
You're not wrong.
>>
File: 098697847558.jpg (54KB, 432x500px) Image search: [Google]
098697847558.jpg
54KB, 432x500px
>>57169106
>>
>>57170122
Sounds good.
>>
>>57169106
OP, read this post carefully because it contains the truth.

If you really are starting from nothing I'd suggest you follow a few python tutorials, so you'd know at least what an if statement or a for loop is. This would be the equivalent of learning what a pushup and a pullup is in your analogy. But don't spend too much time doing python tutorials or you'll become a Pajeet.

First of all, read "Code" by Charles Petzold. It's a pop sci book, but it's pretty complex and after reading it you'll have a very good understanding of how computers work on a low level.

Once you've done that, read thoroughly and do every exercise of "Structure and Implementation of Computer Programs", also known as SICP, which has been already mentionned several times. You could call this book the starting strength of CS.

After that, read K&R, because knowing C is good.

Once you've done all that you'll have very solid foundations.
>>
>>57170702
Also install Linux and learn how to use the terminal. And learn how to use either emacs or vim.
>>
>>57170702
>>57170707
Lisp goes hand in hand with emacs. You'd be doing yourself a disservice to use vim instead. Otherwise good post(s).
>>
>>57169106

>Is there anything in the tech world that is equivalent to Starting Strength?

Why not "overcoming gravity"?
body weight > lifting
:)


But to answer your question:

"must reads" are:
K&R [1]
SICP [2]
CLRS [3]


[1]
>https://upload.wikimedia.org/wikipedia/en/thumb/5/5e/The_C_Programming_Language_cover.svg/792px-The_C_Programming_Language_cover.svg.png

[2]
>https://mitpress.mit.edu/sicp/full-text/book/cover.jpg

[3]
>https://upload.wikimedia.org/wikipedia/en/4/41/Clrs3.jpeg


If you have learned C (and maybe Java and Python), you can also read look into the books from this list here, each of those is a "classic":

>http://www.goodreads.com/list/show/542.Essential_Programming_Books

But they are not for beginenrs, because you won't get what they are talking about unless you coded yourself..

Also NOBODY read so many books, practice is better than "theoretical knowledge" when it comes to programming. Some theory is not bad, but it's more about the rough ideas. Pick up what you need on the way.


Also as a beginer, keep it stupid and simple. You won't grasp the theories of "higher programming" because they won't apply to you. Code your FizzBuzz, code your calculator programm, code your first GUI.. we all started like that.

Later you can look int things like the "Joel Test", but why would you bother about such things in the beginning?

>http://www.joelonsoftware.com/articles/fog0000000043.html
>>
Code Academy
>>
File: 1476243526209.jpg (259KB, 1600x1200px) Image search: [Google]
1476243526209.jpg
259KB, 1600x1200px
>>57169394
Not OP, but what if someone is out of HS and want to get into tech business.
What branch in college should go to?

>CompSci
>CompEng
>IT
>NetworkEng
>Software Engineering
>>
>>57171005

Depends on what you want to do/ are intersted in..

You want to understand how your computer actually works but also be able to code if you have to? --> ComEng

You want to know how long it takes to calculate all shortest paths in a network or the fastest way to sort a set of values, in other words: write correct and mathematical sound code? --> ComSci

You are not that interested in theoretical knowledge, but rather want to grab the best tools, start coding and write the next Twitter? --> Software Engineering

You are interested in how WLAN and the internet really works, you like electricity, you might work at a big company, fixing tech stuff? --> NetworkEng


Never heard of "IT", though, since this is rather an umbrella term..
>>
File: wJbf5or.jpg (273KB, 1500x2138px) Image search: [Google]
wJbf5or.jpg
273KB, 1500x2138px
>>57171100
>IT
Information technology.
That's a branch to pick apparently.
What's best branch to get employed/ in demand?
Also Knowing how to code/ web dev, doesn't hurt either.
>>
C Programming Absolute Beginner's Guide
>>
File: tom.jpg (150KB, 500x642px) Image search: [Google]
tom.jpg
150KB, 500x642px
Asking /g/ for programming advice is as smart idea as asking /r9k/ how to get laid.
>>
>>57172370

Then I'll go to /r9k/ and get laid as I get good advice about this matter on this board.
>>
>>57171117

>What's best branch to get employed/ in demand?

That's absolutetly the wrong question.

You'll get a cool job when you are good.
You are good when you put some effort into something.
You put some effort into something when it is interesting.

So rather ask yourself:
What would be the most interesting field for you to work in?

That's a difficult questions, since you don't know until you tried it. Even if 10 people say they love something maybe you hate (or the otehr way around). So my piece of advice is: try as much as you can. Try to build stuff, talk to people, research stuff and do internships, because they teach you the most. And if you find something where you get this "wow, what the hell.." feeling, then go for it. Nothing wrong with studying something "theoretical" and changing to a pure develloper approach afterwards. Of course you can also study something "down to earth" like nteworking, and one day you realize the most intersting part is the theoretical background and you start researching. Just don't follow the masses, then you'll be fine.
>>
>>57169106
>help me get a job
>/fit/ shit comparisons
That's the price you pay for being a normalfag. Back to your containment board.
>>
OP here, retardedly fell asleep. This is what happens when you browse on your phone.

I'm reading through the thread now and it seems like almost everyone is advising along the same lines. Posts like:

>>57170868
>>57170702
>>57169531

Are esspecially helpful. There seems to be a lot of overlap between a couple languages, namely C (and its variants? or cousin languages? not too clear on this) and python.

So I guess I'll get a hold of these books and thumb through em see which one makes the most sense from a syntax perspective and figure out a project to have as some sort of goal.

I assume one of the images I see posted in things like /dpt/ should have something even for the super new like myself.

I'll keep checking back on the thread throughout the day without bumping to see if any more discussion shows up. Guess when I start understanding snippets of code on here I'll know I'm improving.

Thanks /g/
>>
File: 1476913258438s.jpg (3KB, 214x162px) Image search: [Google]
1476913258438s.jpg
3KB, 214x162px
I've never been big on books, but Code Academy has some short courses on a variety of languages. If you just want to get your feet wet and figure out what kind of stuff you want to learn, be it web or software development or just scripts to help you with simple tasks.

>>57172524
>hurr durr I'm autistic and don't actually have any knowledge to offer so I'm going to post some dismissive install gentoo-tier answer and contribute nothing

Kill yourself dude
>>
File: 1475942202246.jpg (1MB, 2592x1936px) Image search: [Google]
1475942202246.jpg
1MB, 2592x1936px
Start by just reading tutorials on languages like C,C#,C++,Java... just to get the overall feeling of how programming flows, like what are ifs,loops, variables etc...
Then try to do some simple stuff with unity or similar...
>>
File: 1477063193811.jpg (29KB, 250x300px) Image search: [Google]
1477063193811.jpg
29KB, 250x300px
>Programming: Principles and Practice Using C++ (Bjarne Stroustrup)
You can tell it's the Starting Strength equivalent because:
-Normies don't understand why it's good.
-Lazy people don't understand why anyone would try that hard.
-Other languages are isolation exercises compared to C++.
-Everything you learn in C++, like SS, applies to your future fitness as a programmer.
>>
>>57169248
how is their java book?
will do that this semester
>>
I recommend a strongly-typed language to learn with, meaning a language that requires you to specify the type of data variables are. Think of strongly typed as free weight exercises and loosely-typed as machines. Yeah, with machines it's easier and safer, but you're not neglecting muscles used for balance. Similarly, loosely-typed languages don't give you the knowledge you need in order to understand basic data structures.

Grab a book on Data Structures in whatever language you choose and work through it. Doing so will improve your programming skills give you the basic knowledge of data structures and algorithms that you need to write good code.
>>
>>57176188
But you are neglecting muscles used for balance*

Sorry about that
Thread posts: 64
Thread images: 12


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.