Quest to become a better programmer

Hi Jow Forums. Let's say a certain 19 year old boomer was going to lock himself in a shed (or visit local library daily) and was going to force himself to program non stop. What computer science topics would you advise him to study?

Attached: quadquad.gif (600x265, 1.38M)

Other urls found in this thread:

en.wikipedia.org/wiki/Event-driven_programming
en.wikipedia.org/wiki/Entity–component–system
en.wikipedia.org/wiki/Component-based_software_engineering
Jow
twitter.com/SFWRedditImages

None, just do your first hello world and start watching youtube videos like every other pajeet.

pro-tips:

1) keep practicing.
2) don't try to learn everything quickly. don't rush. relax.
3) don't focus on programming constantly or you'll burn out.

I already know the basics. I just want to level up my skills

I figured I'd study interview qyuestions since those are always abstract

I'd rather learn how to draw in that situation.

If I have to choose? Algorithm and data structure of course.

read CLRS
don't force yourself to study a topic all day, you stop retaining things after 2-4 hours of focusing
category theory is also pretty interesting

- learn about sorting algorythms and code the top 5 into seperate functions.
- fill a sql database filled with random text data
-pull the data and sort it with each algo
- output how long it algo to pull all the data and sort it to standard out

bonus : use a sql database hosted somewhere else like a vps or hosting site you may already have.

>19 year old boomer
god just kill yourself already

C'mon user, we were all 19 year olds once. He's just discovering life.

en.wikipedia.org/wiki/Event-driven_programming
en.wikipedia.org/wiki/Entity–component–system
en.wikipedia.org/wiki/Component-based_software_engineering

>45 year old literal boomer telling a kid on the internet to kill himself when he creats a genuine Jow Forums thread

you really need to kill yourself.

tfw im younger than this retard and I still know he's retarded
feels bad man
>inb4 underage b&
18

Turns out every library in my area have these checked out. Looks like I might need to buy it on Amazon... Thank you for the recommendation though. I've seen the cover plastered everywhere on the web. I will read this book one way or another.

I might do the sorting part, but how does filling an SQL table improve one's programming abilities?

Lol just because you're not a 90's kid doesn't mean you have to flame OP

>not even knowing what being a 90's kid is all about
>not enjoying Monster(tm)
>not having lawn to ride a lawnmower on

Attached: 10yearsold.jpg (280x268, 53K)

books:
Types and Programming Languages
How To Design Programs
Compiling with Continuations
Lisp In Small Pieces
Hacker's Delight
Category Theory (Awodey)
Purely Functional Data Structures
Advanced Topics in Types and Programming Languages
Structure and Interpretations of Classical Mechanics
Type Driven Development with Idris
Software Foundations
papers:
ACategoricalTheoryOfPatches
AFormalizationOfDarcsPatchTheoryUsingInverseSemigroups
ALightweightSymbolicVirtualMachineForSolver-AidedHostLanguages
AnOverviewOfLinearLogicProgramming
ApplicativeProgrammingWithEffects
AutomaticallyProvingEquivalenceByType-SafeReflection
ClownsToTheLeftOfMeJokersToTheRight
DependentlyTypedProgrammingInAgda
DependentTypesWithoutTheSugar
DesignAndImplementationOfLinearProgrammingLanguages
DeterministicError-CorrectingCombinatorParsers
FingerTrees
FreerMonadsMoreExtensibleEffects
FromSystemFToTypedAssembly
GenericZero-CostReuseForDependentTypes
HigherInductiveTypesAsHomotopy-InitialAlgebras
HomotopicalPatchTheory
IndictiveFamiliesNeedNotStoreTheirIndices
InterpretingTypesAsAbstractValues
LazyFunctionalIncrementalParsing
LinearRegionsAreAllYouNeed
OnTheRolesOfTypesInMathematics
PracticalErasureInDependentlyTypedLanguages
PracticalLinearityInAHigher-OrderPolymorphicLanguage
ProductiveCoprogrammingWithGuardedRecursion
ProgrammingInMartin-LofsTypeTheory
ProgrammingWithAlgebraicEffectsAndHandlers
PropositionsAsTypes
SaferSmartContractsThroughType-DrivenDevelopment.pdf
send
SequentialDecisionProblemsDependentTypesAndGenericSolutions
StagingBeyondTermsProspectsAndChallenges
StateMachinesAllTheWayDown
StreamsALaCarteExtensibleObjectAlgebras
StronglyTypedHeterogeneousCollections
SyntaxAndSemanticsOfQuantitiveTypeTheory
TaglessStagedInterpretersForSimplerTypedLanguages
ThePartialityMonadAsAQuotientInductive-InductiveType
TuringCompletenessTotallyFree
Type-DrivenDevelopmentOfConcurrentCommunicatingSystems
TypedTaglessFinalInterpreters
UsingPartialEvaluationToImproveDomain-SpecificLanguages

Hit the character limit so had to remove spaces

Although I appreciate the effort, do you really expect someone to read all those books?

What are your top three from your list?

Not him, but you can't only consider programming skills. You should be able to navigate in the terminal during a SSH session, use databases etc. These are all useful skills to have.

>study
You need to work and study concurrently to become a better anything.

I'd suggest that you find a topic that is interesting to you and start building things. You'll learn far more by actually thinking out problems than reading the words of someone else who has learned through experience that you don't have.

Effort consists of ls and sed.

Top three books would be TAPL, HTDP, and LISP since they cover enough to write your own compiler.
Papers? PropositionsAsTypes, IndictiveFamiliesNeedNotStoreTheirIndices, and SyntaxAndSemanticsOfQuantitiveTypeTheory but those are closer to my interests.

Is you want them in PDF form I could upload it to volafile or something as I have all of them local.

Step 1. Stop thinking you're learning "computer science" that's a fucking meme
Step 2. YouTube. Follow examples.
Step 3. Keep doing step 2 until you can do it on your own
You are now a programmer

>youtube
Don't listen to this moron. Literature is and will always be the superior medium for programming. Only recur to Youtube or similar when you need to see a graphical representation of how an algorithm works or similar.

>What computer science topics would you advise him to study?
Jow Forums-science.wikia.com/wiki/Computer_Science_and_Engineering

Actually yes, I do

Do into compiler construction. it's entertaining, practical, can be approached incrementally (there is a lazy man's solution for each step so you gen some working product quickly) and in modular way so the project won't become unmanageable mess any time soon.
Lexing and parsing will introduce you to Chomsky hierarchy, formal grammar languages, finite state machines, various parsing strategies.
Semantic analysis is filled with practical approaches and type systems are more theoretical topic.
At this point you can make simple interpreter.
Optimizations and some intermediate representation are optional topics you can work on later. It's filled with graph algorithms.
On code generation you can start to learn basics of assembly (no need to bother with full instruction set), how function calls work on assembly-level, call stack, register allocation. You can be reusing existing assembler for generating the final executable.
You can learn about existing formats of object files, ELF binaries and linking after.
Then get deeper knowledge on each part, test more designs and features, just play with it. As said - each part can be done with simple solution and dive deeper later. You can also get familiar with making a language with llvm or gcc backend, or bytecode with JIT compilation.
It's a nice mixture of practical exercises, theory, design and meeting existing tools.

Algorithms, O Notation, Memory (Physical, Virtual, Cache, Translation Look-Aside Buffer, Stack, Heap, Registers), Regex, Compiler Design, Critical Path, Single-Cycle CPU, Multi-Cycle CPU, Pipelining, Parallelism, Branch Prediction, Out of Order Execution, Assembly, High Level Code Assembly, High Level Code Optimizations, Assembly Optimizations, Memory Management (Ref Counting, etc), Dennard Scaling, Dark Silicon, Linking, standards such as MISRA C and etc. (to understand the logic behind the choices.), etc.