so the first think to code effortlessly is LEARN THE SYNTAX? REALLY??? Omh! We have a SHERLOCK HOLMES! Man, just stop WASTING MY TIME and go make some USEFUL content.
@@k4dr0n2 You missed the best part of the sections where he gave basic info from every programming tutorial online and then plugged his online dev course to get into the industry. I've been unsubscribing to a lot of channels lately that went from being helpful to just every video plugging their online courses. Guess YT monetization isn't enough for them anymore.
1) Syntax & Structure -> Familiarise with syntax and basic tools -> work on larger more abstract and ill-defined problems 2) Debug -> learn how to use debuggers, explain to a rubber duck out loud what I think the problem is 3) Planning -> plan how the code will be written before writing it
so the first think to code effortlessly is LEARN THE SYNTAX? REALLY??? Omh! We have a SHERLOCK HOLMES! Man, just stop WASTING MY TIME and go make some USEFUL content.
As a retired software engineer (who likes to fool-around..with Python...on Linux) I love the "rubber duckie" analogy. None of my instructors in college ever told me about that. One of the "trendy paradigms" that was touted when I got my first programming gig was the "Structured Programming Techniques" methodology...what Tim calls "problem decomposition". I get a lot of good Python "snippets" and ideas from Stack Overflow.
Honestly the solution to coding is to stop looking at videos like this. Go to a online course and do the course. And if you don’t get it, do another course, get to doing the “project” phase of tutorials and do projects. Then it will just start to click…but the key is repeating the process over and over and over and over again. No learned lesson is possible without trial and error on a consistent basis.
We (teachers/professors in America) have been trying to get students over the past 5 years to stop going straight to YT for everything they are studying in their courses. But there is a perspective among Americans today that tells them that they must find a hack or fast-track strategy. So they have started equating watching a 10-minute video (if even that long) with guaranteed success over spending the time like all successful students, pre-internet, did. It has become quite pathetic, the increase in helplessness and laziness.
Try to decompose the project into pieces, think for example; "what should this do?" and "is this going to communicate with something else in order to work?", these are the types of questions that you can use to create a better structure.
i think hmmm, after you have been developing for a couple of years... i think thr main thing is two splits of devs 1. ones that test every single stepnand stitch those together 2. those which develop the entire piece and then debug (1) will be praised in the short term, (2) will be praised in the long tern. imo, i think (2) also leads to better code, so a question is - "how many functions or classes do u write until u test ur code?"
Spot on Tim. Number 2 is where I'm at. I'm learning Python at the moment and feeling a bit over whelmed by the coding. When you get given an exercise and I'm looking at what they want and I'm thinking "where do I start?". Your the first video I came across that actually touches on this, well done.
No, coding is easy. Its doing it at a company that makes it hard because you have political battles about things to add/remove, what tech stack you need to use, then change to once people get tired of it/leave etc. Debugging, refactoring, and rewriting the same thing over and over because business has no new features to add because there typically are no new features once the business is situated and making money - are the only things you need to worry about. Oh, and of course, dealing with tech bros that over engineer solutions for a CRUD app because they didn't want to waste all of the leetcode "knowledge they gained but never get to actually apply.
Planning is a nice idea. But every project I've ever started you can have a plan in mind that plan is scrapped real quick. Most of the time you don't even realize what problem you are actually facing until about half way through. So most of the time I find it more effective to just start laying down code and figure out problems and functionality first and then rewrite it with a plan in mind.
For the first years my thinking was "try to write perfect pieces of code always". When I realized it was almost impossible, or, it requires too much effort, I changed my mindset. Now it is like: "Code works. Main Goal is reached. Now spend some time for refactoring, supported by proper unit tests". So effective testing is another discipline you should have skills in.
I am trying to self teach. I need a change that pays well and gives freedom and coding seems to give that. I hope these 3 topics mentioned helps me. I am currently taking the CS50 learning python course and I definitely feel lost at times because I have never coded before. Everything I read says to start doing projects which makes sense, that's how we learn. Just need to know where or how to start. When I think of a project I have no idea what I want to make or what it entails exactly. Not sure if that makes sense but yeah lol. I'm sure others have felt the same.
Taking cs50 and also paid for a course to python. My python course has me writing little code as I learn it. Learning so much faster personally than my cs50
About the debugging thing I think showing something like this could help: big_function(){ small_function1() small_function2() small_function3() small_function4(small_function5()) } big_function does something weird, but you don't test it at first. You test small1, small2, small3, small5, small4, and if everything goes well, then you check big_function. Because otherwise maybe small2 is wrong but it is so hard to identify just from big_function. I really think your way is confusing (because it lacks something visual to get a better idea).
@@TechWithTim my method is, if im solving a problem in cs50python, i will find a code tutorial or code that works then if it works, i would start from learning it there on how it works from there to there and later on after i fully understand it, i will modify it to fit to my ideas, is it okay to do something like that? im always overthinking about my method because in my mind, why would i make it difficult for me to solve it if somebody already figure it out, and just learn it from somebody who already figure it out, then make it work from there... please i badly need your opinion about this
@@TechWithTimunconsciously im doing rubberduckie, once i find a code that works for the problem set, i will start analyzing each line of code on how it works, why it works and what is the start to finish until i fully get it, then modify it, i find it easier that way since i can view the code that works on how they use it in accordance to its syntax, since im still a beginner i find it hard to understand each syntax
Following others' methods provides insight, but why must everyone rediscover a method on their own? Despite many coders' strong opinions, it seems hard to find general explanations on structuring projects. Explaining the problem itself is challenging, and this video is one of the first I've seen that addresses this issue. It highlights a significant gap, leaving many unsure of how to approach a project even with some ideas. This often results in an overreliance on copying tutorials far longer than should be necessary, and even leave some feeling like that is all they can do.
I think a lot of people feel the same way. The problem is that every individual project will be structured differently depending on who writes it. I haven't even got around to starting my first project myself because I have no idea where to begin, even though my fundamental knowledge is good and I've watched many code-throughs of other projects. I know how to write a function, but only in the context of that function doing one task. There are probably a million different ways a function can work, but I only know how to make it return a variable, because tutorials.
@@MrNikolidasthis was harsh to read, im stuck with this problem too for about two years now. I'm tired of tutorial hell. I'm so close to quitting altogether.
Whats happening to a rubber duck? It sits there on the desk. Do you describe the orientation, color, etc? Nothing happens with it without any external input.
I found it relatively easy to learn the skills needed to write code. My problem was seeing how to use the things I knew to solve the problems infront of me.
This is exactly where I'm at... I know JavaScript and I'm learning Node at the moment, but have no idea how to combine all of these things together to make a large, full-scale project. I have basic knowledge of Python too, but I'm only able to solve these small scale problems on my own.
@1:45 imo code is just about... it feels more now about organization, whats the best organization for access... whats the pattern u want to encourage/discourage? but all of this is understanding and if only you can see multiple ways to solve a problem. one of the biggest is like code inversion which can happen when functionality and variable layer becomes muddled
I've been learning front-end for 1 year, im still stuck with js basics, it's a waste of time for me tbh. I can think and explain pretty much any js fundamental thing, but when im suppose to write it, im blank. What writing your own code actually means ? Writing everything by yourself or trying to build your idea even tough you're using tools like yt or ai. Cuz i def can't memorize code and many many thingss are still a big ass question for me cause i question everything to the bone, why? how? and why again.
You said "but when i'm suppose to write it, i'm blank", this is very normal all feel this. 1. Learn concepts and not to remember syntax because syntax can be looked up easily, 2. Coding to code without anything to use it on creates the feeling of its a waste of time. Tips: Convert your feeling of blankness into ah something new to learn, I know nothing, this journey should be exciting, only through acknowledging being blank at first but seeing your final creation can you understand feeling blank is part of the process.
The "Rubber Duckie" you mention is what we called, back in the 1980s, a "Cardboard Programmer". Its exactly the same thing, just a different name. I've used this for 40+ years, it works well.
Best Practices is the missing piece. It’s also a problem that nobody cares about clean code and maintainability, code authors enjoy juggling complexity in their prose, you endup reading implementation details loaded with clever layers of effects rather than simple requirements or intentions.
Question on the research part. I know we don’t want to reinvent the wheel but do we want a project that depends on packages or code that may be outdated. I try to build the wheel to know how it works.
I got over 10 years of coding. I got "Hello world" and that's about it. My brain is not wired for coding. I can rebuild a car bumper to bumper easy peasy, so I'll stick to mechanical skills.
So number 1 is what most people obviously attempt and what most people struggle with because remembering it, unless you have a better than average memory, iw really hard so it requires LOADS practice. Alot of people don't invest the time or go off doing so after a few months.
I hate 9-5 job. The only time i love coding is the time i do that as a business like making app/website/game and make money from it. I don't know what to do. Any advice ?
do you have any plan to teach C as a beginner programming language? I got into python because of your explanation. Hoe you made it so much more easier to understand.
I'm halfway learning Python. Struggling to understand if its worth learning to code when AI can do it so much already. Anyone else concerned if all this effort might go unused?
It's worth learning. It'll do you a lot of good when you know how to code yourself. AI is just an assistant and is not meant to write the entire code for the project for you. If you don't understand and know how to code you wouldn't be able to spot out when the results AI gives you is missing it in it's LOGIC.
Well I'm not an experience coder but I can say only this that unlike learning any other human languages programming is no different. First you need to be familiar with all the nuts and bolts; then need to learn how to read it and then only learn how to write by yourself.
It depends on the size of the problem. For a "hello world" program this certainly holds true. As well as for saying "My name is Tim" in your language analogy. If you face down a whole program architecture you just have to start somewhere. You can not first learn all grammar and understand everything in i.e. japanese before you speak a single sentence.
Coding was hard until I sat my a*s down and learned about Operating Systems and Memory via Programming with C++. Everything else was just a cool challenge. EDIT: And most importantly, how to take notes.
Tim, while agreeing with everything you said, I had to first overcome some misconcetions on my own. It may have to do with overlooking the obvious sometimes: It is now clear to me that the word "language" has a whole other implication in programming as it does with learning a foreign language. Learning a foreign language, you have to memorize words and sentence structure, with programming languages, you have to mostly memorize whole sentences, if not whole paragraphs. JS language for me now reads JS coding. Just replacing the word "language" with the word "coding" has helped a lot. Secondly, as verbose as imperative programming is, it is more natural. With declarative programming, especially with frameworks, the need to memorize things exactly as given is much greater still. So, now that I have understood the obvious, I can concentrate much better on learning. And, learning now for me means not learning everything(an impossibility) rather learning what I need to know to get a task done. I guess, it comes down to taking into account the environment you find yourself in.
Can we not solve most of the problem when it comes to debugging using A.I? I am a new learner and whenever I come across code error, I use chatgpt to find out the issues. Please advise
@@TechWithTim last question, what do you think about the A. I taking over programming tasks, is it worth learning and investing time in Python or any other frontend or backend programming language?
@@balafua Yes. Without learning and investing time your questions to A.I become A,B,C,D instead of just D. And how you arrived to just ask question D was through experience and learning. It's also good to know a fair amount(obtained through learning) before asking something, so you can quickly sanitize check the A.I's answer.
Any feedback on the courses. I live in Japan, want to change careers, but I also want to keep my Visa. Any recommendations or suggestions. I was planning on joining a bootcamp next year but maybe this course might be better.
Coding is hard because all tutorials are incomplete horseshit! It's like telling people what you need to build a car but don't tell them you need wheels
The problem with most tutorials is that they hold your hand the entire way. they rarely force you to think or apply things you've learned yourself. And on top of that, most dont even explain why they are doing what they are doing as they go through the tutorial, so you learn even less. Thats why something like harvards cs50x is so good. (and its free!) Im almost done with the course, and its taught me a lot.
Totally disagree with this video being pointless to watch. I do agree that AI is changing a lot of things, and using it in your workflow as a developer today is 100% necessary, you absolutely still need to know fundamentals. The tips that Tim shared here are still totally relevant, and core to how a developer should approach solving problems.
Dude , i m devops and learning about sw engineering . i think your video is not keeping the promise . this is how it work : Title = the promise . content the fullfil of the promise by actually giving the info , here you just put out some very vague info and do Sel promotion of your course .... dont forget who is you audience = People smart as you . and we can find the real answers in other channels . so stop playing with your audience . repect it . TRULY help it the you will have success . from the content i saw i think you an expert into coding , but are you truly a sw engineer ? not yet . let me suggest this : teach by using real life alike scenario ..... like in your job , with an over the shoulder view showing how to add a feature on exisiting code on git hub , the PROCESS of analyzing the code , and how to add and change the code Within the code best practices or the company pratices , how to test the code . instead of Pitch selling and not truly keeping the promise of your videos . have a good day .
Hi Tim, I've been "working" with you on my Python knowledge for a bit of time already! I'd say it's very helpful to listen to your explanations about the Projects you show. Wanted to ask about your course - what language is used in it? Is it only JS version, or you have the any other with Python?
The course teaches JS, HTML, Go and possibly Python and Typescript depending on the specialization you pick. You can see the entire course outline from the landing page
Way too much zooming in and out and freakyness with the video tools. Had to open a blank tab and just listen without watching to avoid the 1000 visual distractions.
This an awful simplification of programming to flex your development courses. There's way more that you need to know to move past the intermediate programmer. Defining the domain, creating contexts of responsibility, separation of concerns, scalability, state management, threading, coding principles, IPC, dependencies, design patterns, normalization, modeling and the list goes on and on. This is a sales video. That's it.