Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "learning material"
I recently met a young fella (14yo) playing League of Legends. He asked:
- What do you do for a living?
- I'm a programmer, do you know anything about programming?
- I don't, actually.
Apparently he was playing from a LAN Gaming center 'cause he didn't have a computer at home (his computer had broken and these Lan centers are pretty affordable).
I figured I could explain to him what was it and what super powers you could get from it. Turns out I recommended a JS course in codecademy and now he goes to the LAN center every day to study programming (he got really into it!).
Now he always pings me with questions about JS and apparently he's learning a ton! He had almost no English skills too (we're Brazilian), and because most of the material in the internet is in English he found himself some free English courses and he's now taking them!
Knowledge is free on the internet and I guess he's just realized that.
Not exactly a rant guys, just figured it was a nice story to tell :)
I'm a self-taught 19-year-old programmer. Coding since 10, dropped out of high-school and got fist job at 15.
In the the early days I was extremely passionate, learning SICP, Algorithms, doing Haskell, C/C++, Rust, Assembly, writing toy compilers/interpreters, tweaking Gentoo/Arch. Even got a lambda tattoo on my arm after learning lambda-calculus and church numerals.
My first job - a company which raised $100,000 on kickstarter. The CEO was a dumb millionaire hippie, who was bored with his money, so he wanted to run a company even though he had no idea what he was doing. He used to talk about how he build our product, even tho he had 0 technical knowledge whatsoever. He was on news a few times which was pretty cringeworthy. The company had only 1 programmer (other than me) who was pretty decent.
We shipped the project, but soon we burned through kickstart money and the sales dried off. Instead of trying to aquire customers (or abandoning the project), boss kept looking for investors, which kept us afloat for an extra year.
Eventually the money dried up, and instead of closing gates, boss decreased our paychecks without our knowledge. He also converted us from full-time employees to "contractors" (also without our knowledge) so he wouldn't have to pay taxes for us. My paycheck decreased by 40% by I still stayed.
One day, I was trying to burn a USB drive, and I did "dd of=/dev/sda" instead of sdb, therefore wiping out our development server. They asked me to stay at company, but I turned in my resignation letter the next day (my highest ever post on reddit was in /r/TIFU).
Next, I found a job at a "finance" company. $50k/year as a 18-year-old. CEO was a good-looking smooth-talker who made few million bucks talking old people into giving him their retirement money.
He claimed he changed his ways, and was now trying to help average folks save money. So far I've been here 8 month and I do not see that happening. He forces me to do sketchy shit, that clearly doesn't have clients best interests in mind.
I am the only developer, and I quickly became a back-end and front-end ninja.
I switched the company infrastructure from shitty drag+drop website builder, WordPress and shitty Excel macros into a beautiful custom-written python back-end.
Little did I know, this company doesn't need a real programmer. I don't have clear requirements, I get unrealistic deadlines, and boss is too busy to even communicate what he wants from me.
Eventually I sold my soul. I switched parts of it to WordPress, because I was not given enough time to write custom code properly.
For latest project, I switched from using custom React/Material/Sass to using drag+drop TypeForms for surveys.
I used to be an extremist FLOSS Richard Stallman fanboy, but eventually I traded my morals, dreams and ideals for a paycheck. Hey, $50k is not bad, so maybe I shouldn't be complaining? :(
I got addicted to pot for 2 years. Recently I've gotten arrested, and it is honestly one of the best things that ever happened to me. Before I got arrested, I did some freelancing for a mugshot website. In un-related news, my mugshot dissapeared.
I have been sober for 2 month now, and my brain is finally coming back.
I know average developer hits a wall at around $80k, and then you have to either move into management or have your own business.
After getting sober, I realized that money isn't going to make me happy, and I don't want to manage people. I'm an old-school neck-beard hacker. My true passion is mathematics and physics. I don't want to glue bullshit libraries together.
I want to write real code, trace kernel bugs, optimize compilers. Albeit, I was boring in the wrong generation.
I've started studying real analysis, brushing up differential equations, and now trying to tackle machine learning and Neural Networks, and understanding the juicy math behind gradient descent.
I don't know what my plan is for the future, but I'll figure it out as long as I have my brain. Maybe I will continue making shitty forms and collect paycheck, while studying mathematics. Maybe I will figure out something else.
But I can't just let my brain rot while chasing money and impressing dumb bosses. If I wait until I get rich to do things I love, my brain will be too far gone at that point. I can't just sell myself out. I'm coming back to my roots.
I still feel like after experiencing industry and pot, I'm a shittier developer than I was at age 15. But my passion is slowly coming back.
Any suggestions from wise ol' neckbeards on how to proceed?32
Got a call from Google!
Asked for two months to study: Discrete mathematics, Calculus, introductions to algorithms, design patterns, CTCI and linux/unix OS workings in general.
I know I'll be banging my head against the wall and I don't have my expectations too high. But regardless I feel like this is a good excuse to speed up my studies and push myself in the direction I want to go already. It'll be a win-win even if I don't land the position because I'll definitely gain a ton in the process of preparing.
I will be expose to all of this material (except for calculus because I've been learning it for a couple of months) for the first time so I know it'll be a challenge and I am looking forward to it.
If any of you have any tips on good study habits that'll be much appreciated; I currently like to read most of my material and supplement with videos/tutorials... Khan is great but they lack material on discrete mathematics unfortuantely. Thanks in advance!
Wish me luck (:9
I could bitch about XSLT again, as that was certainly painful, but that’s less about learning a skill and more about understanding someone else’s mental diarrhea, so let me pick something else.
My most painful learning experience was probably pointers, but not pointers in the usual sense of `char *ptr` in C and how they’re totally confusing at first. I mean, it was that too, but in addition it was how I had absolutely none of the background needed to understand them, not having any learning material (nor guidance), nor even a typical compiler to tell me what i was doing wrong — and on top of all of that, only being able to run code on a device that would crash/halt/freak out whenever i made a mistake. It was an absolute nightmare.
Here’s the story:
Someone gave me the game RACE for my TI-83 calculator, but it turned out to be an unlocked version, which means I could edit it and see the code. I discovered this later on by accident while trying to play it during class, and when I looked at it, all I saw was incomprehensible garbage. I closed it, and the game no longer worked. Looking back I must have changed something, but then I thought it was just magic. It took me a long time to get curious enough to look at it again.
But in the meantime, I ended up played with these “programs” a little, and made some really simple ones, and later some somewhat complex ones. So the next time I opened RACE again I kind of understood what it was doing.
Moving on, I spent a year learning TI-Basic, and eventually reached the limit of what it could do. Along the way, I learned that all of the really amazing games/utilities that were incredibly fast, had greyscale graphics, lowercase text, no runtime indicator, etc. were written in “Assembly,” so naturally I wanted to use that, too.
I had no idea what it was, but it was the obvious next step for me, so I started teaching myself. It was z80 Assembly, and there was practically no documents, resources, nothing helpful online.
I found the specs, and a few terrible docs and other sources, but with only one year of programming experience, I didn’t really understand what they were telling me. This was before stackoverflow, etc., too, so what little help I found was mostly from forum posts, IRC (mostly got ignored or made fun of), and reading other people’s source when I could find it. And usually that was less than clear.
And here’s where we dive into the specifics. Starting with so little experience, and in TI-Basic of all things, meant I had zero understanding of pointers, memory and addresses, the stack, heap, data structures, interrupts, clocks, etc. I had mastered everything TI-Basic offered, which astoundingly included arrays and matrices (six of each), but it hid everything else except basic logic and flow control. (No, there weren’t even functions; it has labels and goto.) It has 27 numeric variables (A-Z and theta, can store either float or complex numbers), 8 Lists (numeric arrays), 6 matricies (2d numeric arrays), 10 strings, and a few other things like “equations” and literal bitmap pictures.
Soo… I went from knowing only that to learning pointers. And pointer math. And data structures. And pointers to pointers, and the stack, and function calls, and all that goodness. And remember, I was learning and writing all of this in plain Assembly, in notepad (or on paper at school), not in C or C++ with a teacher, a textbook, SO, and an intelligent compiler with its incredibly helpful type checking and warnings. Just raw trial and error. I learned what I could from whatever cryptic sources I could find (and understand) online, and applied it.
But actually using what I learned? If a pointer was wrong, it resulted in unexpected behavior, memory corruption, freezes, etc. I didn’t have a debugger, an emulator, etc. I had notepad, the barebones compiler, and my calculator.
Also, iterating meant changing my code, recompiling, factory resetting my calculator (removing the battery for 30+ sec) because bugs usually froze it or corrupted something, then transferring the new program over, and finally running it. It was soo slowwwww. But I made steady progress.
Painful learning experience? Check.
Pointer hell? Absolutely.4
Boss set me up for a last minute certification to prepare for next years new projects. Went through a lot of material in just two days, then had to take the exam immediately after the last class ahead of everyone else. Aced it!^^
What surprised me the most though is how much I still enjoy learning new stuff (wasn't even tech), even after 8 yrs on the job..4
So, the uni hires a new CS lecturer. He is teaching 230, the second CS class in the CS major. Two weeks into the semester, he walks in and proceeds to do his usual fumbling around on the computer (with the projector on).
Then, he goes to his Google Drive, which is empty mostly, and tells us that he accidentally wrote a program that erased his entire hard drive and his internet storage drives (Google, box, etc.)...
I mean, way to build credibility, guy... Then he tells us that he has a backup of everything 500 miles away, where he moved from. He also says that he only knows C (we only had formally learned Java so far), but hasn't actually coded (correction: typed!) in 20+ years, because he had someone do that for him and he has been learning Java over the past two weeks.
The rest of the semester followed as expected: he never had any lecture material and would ramble for an hour. Every class, he would pull up a new .java file and type code that rarely ran and he had no debugging skills. We would spend 15 minutes trying to help him with syntax issues—namely (), ;— to get his program running and then there would be a logic issue, in data structures.
He knew nothing of our sequence and what we knew up until this point and would lecture about how we will be terrible programmers because we did not do something the way he wanted—though he failed to give us expectations or spend the five minutes to teach us basic things (run-time complexity, binary, pseudocode etc). His assignments were not related to the material and if they were, they were a couple of weeks off. Also, he never knew which class we were and would ask if we were 230 or 330 at the end of a lecture...
I learned relatively nothing from him (though I ended up with a B+) but thankful to be taking advanced data structures from someone who knows their stuff. He was awful. It was strange. Also, why did the uni not tell him what he needed to be teaching?
Most of our university courses are stuck in the early 2000. Feels like it's mostly due to lazy professors who just use the same material year after year.
What do you think?
It feels like I'm not learning anything useful anymore. Should get out of here ASAP.10
Holy fuck is learning new frameworks frustrating.
I'm trying to setup a simple fucking flutter app and all their tutorials are basic shit with no auth/complex routing.
Any feature of flutter that's not in a tutorial has absolute shit documentation with 0 examples on how to use it.
Material app has like 20 properties and if you click on something like on generate there is shit for knowing what the fuck it's expecting.
Stackoverflow has a ton a code but that's just it, code. I have absolutely no idea how they generate the code they have from the documentation on the site. They must have been following flutter from the start.
I "Bought" a copy of O'reilly's Learning Python. How much of the 1200 page monster is actually necessary/good learning material? Anyway, have a snek.2
Boy was I happy to see this when I opened devRant up.
So for starters, more group projects are necessary. Many reasons why. To begin with, it allows for more complex programs than getting some input and printing some shit out. It also develops interpersonal skills (I hate people too, but when you go out to look for work you'll be with them, so better get used to it soon). If a platform like GitHub is used, it's easy to track who did what, and see what each person in the group did, so it should be fairly easy to discourage lazy asses.
Beyond that, stop giving us half completed assignments and asking us to fill in a function/method. Yes, it will take longer. But one doesn't learn to program by doing the minimum required work, you've got to crash and burn a lot in order to git gud. So ffs, let us do all the work. We're like AI, we learn through reinforcement learning.
Stop giving us a spec to follow. We'll do plenty of that in the future, right now we need to make mistakes, not be held by the hand all the way. Let us do dumb shit so you can fail us and tell us our code is repulsive, and this other way was better. Explain why. That's how people learn, not by telling us what each function should return, what can and can't be used, etc. And if you can't come up with a scenario in which what you're teaching is useful, then maybe you're not teaching us the right material.
I'll leave it at that for today... But I'll be back 😈
Love how DoD work requires sec+ certification but as you are learning the material you realize they don’t follow any procedures or practices.6
Hey guys, I've hit a major snag in my dev life.
My backend/frontend Java project has hit a wall as the material I was using from Udemy on advanced Java programming was boiling down to copy and paste programming without the learning. That doesn't really work for someone with 2 years programming experience but only a good 2 months of Java knowledge. I need to learn not just follow along what's written on a screen. Thankfully I learned to give in about 2 weeks in so I didn't waste a ton of time on it.
Would books be a better option? I self taught C++ mainly from books and preferred that over videos, but when I did C# videos were mostly better than books.
And...I guess I'll open the floodgates to recommendations for other stacks. I like Java and I'd like to keep using it but I know you don't want to get married to a way of doing things. My end goal is to make an E-commerce website that I can show off in interviews about a year from now.
Please be kind, I'm feeling a bit like crap right now. :(7
As an CS college drop-out I have nothing to add than what has already been said, outdated material and barely used languages with paper coding / exams and listening to an old geeze about when he programmed in 1942.. you get it..
Not that I lack respect for what the man did back then but it seems rather unrelated in today's times.
So now it's stockmen work while own study, working on small projects and learning with mates and amazing camp platforms now and again.2
Hey Linux users!
I'm coming from a pure Windows background, and is going to make the change to Linux:Debian this weekend, and is looking for recommendations on material for learning commands and other possible features the OS might contain.
Working mostly with web dev and some Datawarehouse/BI applications.
Hoping for a smooth transition!6
Every few months I think about this and I lose my fucking britches.
So back in 8th grade, I thought I would have a really good time, good grades and shit... you know the drill.
Then comes the worst main teacher I have EVER had (will call her Jane Doe because I still have some respect...).
For some odd reason Jane REALLY hated me and one of my friends.
She asked irrational questions in exams, didn't write on the whiteboard, didn't write organized summaries of the learning material... basically a bitch.
I worked my ass off for 2 weeks working for a literature exam on the level of high-school finals (she did that, while straying further away from the actual fucking curriculum our ministry of education has created), and I got the worst grade I have ever had.
Me and my friend both got a fucking 55/100 on an exam I have worked on for 2 weeks. 2 fucking weeks. No computer, no programming, just literature, while my other friend just completely guessed his answers and didn't REMOTELY elaborate and got a fucking 95/100 on his test. Because of Jane, I had the worst average grade I have ever gotten in my life on the second third of the year: 68.5/100. When the high schools in my area were opening for registration I had to come with this ugly ass average and my current school rejected me (at first). After I finished 8th grade, Jane took pity on me and I got a 74.8/100 on the final average. Still, 0.2 points from the minimum. So I got in to my current high school under special conditions.
"It's training for high school".
Training for high-school my ass, in my high school they write on the fucking whiteboard and are more organized, damn it.2
...This algo can predict new thermoelectric material discoveries years in advance...
Me to all material scientists : "Work harder or we'll replace you with AI".
P.S : I also need to work harder as I barely know the surface of Linear Regression.1
I'm torn on dev bootcamps.
On one hand, I learn the most in hands-on direct tinkering and bootcamps tend to exude this with well-trained instructors following best practices.
On the other hand, the short timeline means corners are cut and an overwhelming amount of material is dropped all at once leading to a leaky retention vessel at the end.
I prefer ramping up learning over a period of time to gain experience than a fire hose approach.1
Finally done with school. It were three years of ups and downs.
The downs were plenty and mostly in the way school material was organized.
We've spend years learning web development where the course should have been more broad (application development)
So by the time my first internship period of half a year approached I searched for a company outside of web development and ended up at a company which did serious games using unity C#. Those were the best months of my 3 years. I managed to push the company into a direction for a future even though it was reletively small.
After that I took up .net and got the MTA C# Fundamentals certificate from microsoft itself. (School offered the exam).
Then there was the 2nd internship.
Worked for a company who sold intranets to other enterprises and I developed a mobile app which connected a user's phone to their account on their intranet. Allowing to seperate work and their private life.
That project was fun but the company itself was terrible. 4 people at the office and the owner treated us as objects rather than people. The company was too small for such an environment and most of them were irritated 9 times out of 10. Glad to be rid of them.
Now I'm in the process of looking for a job and have a meeting with a recruiter tomorrow
Wish me luck.4
Developers more than other groups tend to hold their operating system or programming language of choice dearly, to the point where if someone thinks poorly of the OS or Language, they take it like a personal attack. Then there are those who think poorly of people who who's a certain OS or a specific language. Combine the two and you get hurt feelings and identity crisis.
Can we all just agree that we're all in different stages of learning and that we all generally end up going the same direction for the same types of problems?
Or just have it out and kill each other over it. Will give me great rant material.3
PS. I'm in a country where internet connection is expensive.8
Free python courses/study material? (online)
Thinking of learning python bcuz of how popular it is. Any websites/apps for beginners (that also extends to advanced without IAP or other form of payments)?
Thanks in advance.19
Hey everyone, just wondering how to learn about Grammar.
No I don't mean English grammar.
In particular, I'm looking at PlyPlus grammar. Any thoughts for learning material?
So I am usually more of a classical backend/ app developer guy. I like my Local compilers/interpeters whatever. Recently though i kinda started thinking about how Web Apps work, and how to actually make one, which lead me to the Realisation that i actually have no idea how any of it works. So I started a little private project using django, as I am quite good with python. But soon after starting i realized that that wouldnt be enough, i would need to learn the basics as well as a couple of languages.
what's your favorite *.github.io website or something similar?
https://saylordotorg.github.io/text... (this site has a lot of free material)
I had to explain lambda calculus to some maths majors so here's an interactive lambda shell:
I still need explanations about Church-numerals, conslists and the Y combinator.1
It annoys me immensely when I struggle with myself, criticizing my own lack of knowledge in certain areas and my colleagues say: "You'll learn by doing". No, I won't, that's a foolish dogma.
I won't and I have never learned by 'doing'. The best results I've obtained have been through understanding every last bit of what's under the hood of a particular functionality. I'm not going to understand the white box by constantly probing the black box, it's just unsatisfactory and insufficient information. It's even dangerous to base yourself on the black box results because you often might get false positives.
I got through university by massive multilateral sensory focus: kinesthetic (writing things down), auditory (listening to the professor), visual (observing graphs and models of the material taught), conscious (mentalizing it all and interlinking information so that later it's accessible from long-term memory). I can confirm this is necessary for the brain because a Neurologist once told me just that.
At least for me, I had the most horrible grades (D's and F's) in freshman year with the 'learn by doing' method and the best grades (A, A+) with the multi-sensory method in later years as I matured my studying methods. In fact, with that method I've continuously outsmarted other people who had 10 years more experience than me ('experts', 'consultants',..) but they preferred to stay in the ignorant 'bro zone' rather than learning things properly. Even worse, the day they arrived on the scene, they completely broke the production environment and messed it up for the whole team. I felt like banging my head on my desk. It just makes me disappointed in the system.
If you follow popular method, you'll soon find yourself in the same problems that arise from doing what everyone else does. What happens at that point? That's right, they have to call in someone who actually bothered learning things.10
Critical Tips to Learn Programming Faster Sample:
Be comfortable with basics
The mistake which many aspiring students make is to start in a rush and skip the basics of programming and its fundamentals. They tend to start from the comparatively advanced topics.
This tends to work in many sectors and fields of Technology, but in the world of programming, having a deep knowledge of the basic principles of coding and programming is a must. If you are taking a class through a tutor and you feel that they are going too fast for your understanding, you need to be firm and clear and tell them to go slowly, so that you can also be on the same page like everyone else
Most often than not, many people tend to struggle when they reach a higher level with a feeling of getting lost, then they feel the need to fall back and go through basics, which is time-consuming. Learning basics well is the key to be fast and accurate in programming.
Practice to code by hand.
This may sound strange to some of you. Why write a code by hand when the actual work is supposed to be done on a computer? There are some reasons for this.
One reason being, when you were to be called for an interview for a programming job, the technical evaluation will include a hand-coding round to assess your programming skills. It makes sense as experts have researched and found that coding by hand is the best way to learn how to program.
Be brave and fiddle with codes
Most of us try to stick to the line of instructions given to us by our seniors, but it is extremely important to think out of the box and fiddle around with codes. That way, you will learn how the results get altered with the changes in the code.
Don't be over-ambitious and change the whole code. It takes experience to reach that level. This will give you enormous confidence in your skillset
Reach out for guidance
Seeking help from professionals is never looked down upon. Your fellow mates will likely not feel a hitch while sharing their knowledge with you. They also have been in your position at some point in their career and help will be forthcoming.
You may need professional help in understanding the program, bugs in the program and how to debug it. Sometimes other people can identify the bug instantly, which may have escaped your attention. Don't be shy and think that they'll make of you. It's always a team effort. Be comfortable around your colleagues.
You must have seen people burning the midnight oil and not coming to a conclusion, hence being reported by the testing team or the client.
These are common occurrences in the IT Industry. It is really important to conserve energy and take regular breaks while learning or working. It improves concentration and may help you see solutions faster. It's a proven fact that taking a break while working helps with better results and productivity. To be a better programmer, you need to be well rested and have an active mind.
It's a common misconception that learning how to program will take a lot of money, which is not true. There are plenty of online college courses designed for beginner students and programmers. Many free courses are also available online to help you become a better programmer. Websites like Udemy and programming hub is beneficial if you want to improve your skills.
There are free courses available for everything from [HTML](https://bitdegree.org/learn/...) to CSS. You can use these free courses to get a piece of good basic knowledge. After cementing your skills, you can go for complex paid courses.
Read Relevant Material
One should never stop acquiring knowledge. This could be an extension of the last point, but it is in a different context. The idea is to boost your knowledge about the domain you're working on.
In real-life situations, the client for which you're writing a program for possesses complete knowledge of their business, how it works, but they don't know how to write a code for some specific program and vice versa.
So, it is crucial to keep yourself updated about the recent trends and advancements. It is beneficial to know about the business for which you're working. Read relevant material online, read books and articles to keep yourself up-to-date.
Never stop practicing
The saying “practice makes perfect” holds no matter what profession you are in. One should never stop practicing, it's a path to success. In programming, it gets even more critical to practice, since your exposure to programming starts with books and courses you take. Real work is done hands-on, you must spend time writing codes by hand and practicing them on your system to get familiar with the interface and workflow.
Search for mock projects online or make your model projects to practice coding and attentively commit to it. Things will start to come in the structure after some time.4
Please, what's the best free learning material you have used or would recommend for a Flutter beginner?6
Can anyone recommend resources on learning/revising big O and big Theta notation?
It’s the one thing that never seems to stick in my head, and the course material provided by university isn’t particularly useful.7