A very brief introduction to programming for total beginners.
Пікірлер: 208
@naikrovek5 жыл бұрын
I fucking LOVE this guy. no lengthy (or, any) title card or intro music, not constantly saying "you guys" and talking down to the audience, no "i'll see you in the next video" and so on. In short: no bullshit. This is what all youtube channels should be. information without bullshit wrapping it and inflating the length (and therefore wasting my time as a viewer.)
@alrightsquinky77983 ай бұрын
Amen!
@TheEVEInspiration5 жыл бұрын
Bonus points for stating the fact that programming is about data at the start. Many programmers seem to lose track of this when they get to work for real.
@Aereto5 жыл бұрын
In the world of programming, that is what software engineering meant: make the automated means to receive, manipulate, and send data according to the intended design goals.
@AnonymousAccount5144 жыл бұрын
absolutely...hell, this is a good baseline for an experienced programmer...especially when starting a new framework or language...before you say i don't have any experience with that....refer to this.
@Bonniebelle_00__4 жыл бұрын
@@Aereto great :) inference
@Bonniebelle_00__4 жыл бұрын
@@AnonymousAccount514 theoretically
@zikomo89135 жыл бұрын
This is my favourite CS KZbin channel by far, the style, the content, everything is brilliant. Thanks a lot for this kind of diverse content Brian!
@Bonniebelle_00__4 жыл бұрын
Wow:) fanboy here🤣
@zikomo89134 жыл бұрын
@@Bonniebelle_00__ yep, his videos helped me get some overview of many different topics while I was a beginner.
@alexandrubragari15374 жыл бұрын
@@zikomo8913 what your avatar is about?
@zikomo89134 жыл бұрын
@@alexandrubragari1537 An AI in the Halo games universe.
@baconsledge5 жыл бұрын
Excellent! Brian’s explanations are uncannily concise and unobfuscated.
@victorespinoza62104 жыл бұрын
Great video and now I'm down the rabbit hole of your channel. I love the way you breakdown the information in your videos.
@AnonymousAccount5144 жыл бұрын
beautiful...this is perfect for beginners...it will especially clear up the constant "what language do i start with?" question. I always get a lot of push back when i tell them it doesn't matter...but this clarifies it perfectly
@kensiktv64955 жыл бұрын
Glad to see you are uploading these great videos, keep it up.
@Bonniebelle_00__4 жыл бұрын
Promotional content is a must
@aoeu2564 жыл бұрын
This is true only for Imperative languages... Functional and Constraint/Logic are kinda different...
@Bonniebelle_00__4 жыл бұрын
How would you describe them imperatively
@MatheusAugustoGames3 жыл бұрын
@@Bonniebelle_00__ It's not really easy. Of course, the languages eventually get compiled to machine code, which is imperative, but they are over so many layers of abstraction that it changes the way you think about the programs.
@thomashanson34763 жыл бұрын
Matheus Augusto functional programming produce a dynamic field of conditional loops containing operations from static code while imperative languages only have the capacity to represent a single collection of conditional loops at once
@OggerFN2 жыл бұрын
functional programming languages work mostly the same way but limit how you can do things. These types of videos are for C-like languages or 'C-inspired' languages.
@ngruhn2 жыл бұрын
I would also give SQL an honorable mention. It’s yet another, pretty unique, approach.
@timtim9o55 жыл бұрын
Clear and concise. A good artifact that will surely prove helpful to many students. Thanks Brian.
@Bonniebelle_00__4 жыл бұрын
I agree
@ArkenGAMES2 жыл бұрын
Just stumbled upon this video, and dammn its good. Everything organized and explained perfectly, thanks for the vid, u got my sub.
@tonyguerich98543 жыл бұрын
A lot of your material reminds me of the Gane and Sarsen Structured approach. I learned this early in my career and still think this way first when approaching a problem
@jonasfelix77004 жыл бұрын
Thank you! Great content.
@josephgaviota3 жыл бұрын
I found this an excellent summary of what is going on. I shall share this with my programming relatives.
@112BALAGE1125 жыл бұрын
Important to note: this is only a description of imperative programming. There are many languages that work in completely different ways (for example declarative programming).
@herrfriberger55 жыл бұрын
Both logic programming (like Prolog) and functional programming have been called declarative, despite being quite different. There are also declarative elements in modern imperative languages.
@zeyadjy72295 жыл бұрын
amazing as usual
@MrSunrise-2 жыл бұрын
Ladder logic programming (used on industrial controllers) is entirely about state😛. Attempting to understand it as data transformation leads to headaches and not much else.
@MrSunrise-5 ай бұрын
Very true, and a direct consequence of its origins in relay logic. This hasn't stopped vendors from adding data-oriented features, but the essence of ladder logic is state.
@clnw Жыл бұрын
Thanks Brian!
@derekfrost89915 жыл бұрын
@andré Artus I didn't say I use it at all. I prefer immutability to functional programming, which can be implemented in any language, it's just bad for performance. My point is just that it's called 'every programming language' and then, oops these ones don't count..
@PKAnon5 жыл бұрын
All of your videos are excellent, please make more!
@Vaaaaadim4 жыл бұрын
Woah there, 2:04, I'm pretty sure functional languages don't have loops, though of course one is able to mimic the functionality of a loop.
@mskiptr Жыл бұрын
Purely functional languages just don't have the concept of time built into them. But indeed, you can model time and state with appropriate data structures and by appropriately shaping the evaluation (i.e. using recursive definitions)
@RobbieHatley2 жыл бұрын
Interesting and useful, but does leave out one important mechanism: most languages have a way for variables in functions to retain their values between calls. For example, in Perl one uses "state", and in C and C++ one uses "static". So if you type "static int Fred = 7;" in a C function (or "state $Fred = 7;" in a Perl sub), the variable Fred will be initialized to 7 only on the first call to that function during that run of that program; for all subsequent calls, Fred will _not_ be initialized to 7, but will retain whatever value it had at the end of the last call (say, 42, or -17).
@GeorgeTsiros Жыл бұрын
that's just convenience syntax (some say "syntactic sugar")
@bocckoka5 жыл бұрын
mostly true for procedural languages, less so for some functional ones. they only have some of those things (variables, for loops) as syntactical exceptions
@jakejakeboom5 жыл бұрын
Most functional languages have variables (immutable variables you could argue are not variables), and most have some sort of looping construct beyond map and reduce. So I think he's still being general enough.
@canadiandave81775 жыл бұрын
Not worth mentioning, functional languages probably have less than ~1% of the usage of procedural, according to stackoverflow recent stats.
@Fazz3215 жыл бұрын
Well, if I have to complain about somthing, I would bring "if" and "while" statement, wich is basically "goto" constructions. But well, it would be far less understandable if he was using that. Also there is languages which don't allow you to use functions, and there is algebraic languages wich alows you to compute mathematical equations. But well, it's just complaining over nothing. Good video.
@monke51005 жыл бұрын
Don't forget about declarative languages like prolog
@noergelstein5 жыл бұрын
@Sydney Bean Actually, you don't need loops or recursion built into your language to express repetition. If you have higher order functions (you can pass functions as parameters), you can use for example the Y-combinator to simulate recursion, and using recursion you can simulate loops.
@matrikater2 жыл бұрын
i wish i had this when i was learning
@jeyizumi3 жыл бұрын
You are amazing...
@Juanbaez_4 жыл бұрын
Wow, I have 3 years on computer science. And you have tough me more then the University ever did. Thanks!
@MaoDev3 жыл бұрын
did you really not even learn this in university? That's insane
@simplytom1213 Жыл бұрын
@@MaoDev You'd be surprised by how wacky university can be.
@MaoDev Жыл бұрын
@@simplytom1213 jesus
@simplytom1213 Жыл бұрын
@@MaoDev I sometimes don't know what people learn in Computer Science. I sometimes ask people who completed Computer Science what they learnt, and they said they don't know.
@033muil5 жыл бұрын
You're really devoted to thinking about programming languages in a fundamental way. You have a thorough, all-encompassing understanding of their strengths and flaws. Your ability to reason about related concepts in an abstract way is quite impressive. Have you ever considered designing and producing your own programming language? I'm genuinely curious what the result would be given enough money and manpower.
@asdfghyter2 жыл бұрын
Not quite every programming langue though. For example, most of these things are false for prolog, since it has a completely different execution model and predicates instead of functions. Instead of having a return value, the inputs of a predicate are unified to satisfy the predicate and the code will backtrack otherwise. E.g. calling append([1,2,3], [4,5,6], X) will make X = [1,2,3,4,5,6], but append([1,2,3], X, [1,2,3,4,5,6]) will make X=[4,5,6]. The only thing from this presentation that is true about prolog is that it has input and output.
@Dorto1234 жыл бұрын
Good video man
@dan99485 жыл бұрын
Great explanation, but misleading title. I thought I was going to get a quick sample of different programming languages: static imperative (C/Java), dynamic imperative (python), static functional (Haskell), dynamic functional (Lisp), declarative (HTML), constraint-based (Prolog), object oriented (SmallTalk), etc.
@Bonniebelle_00__4 жыл бұрын
I'm copying this for some research if you don't mind sir?
@zeyadjy72295 жыл бұрын
This clears up may things for me thank you very much, mr Brian. Can you do a video on an example program lifetime how does it executes and what's going on beneath the hud
@codebreakeruk65335 жыл бұрын
Hi Brian, not sure how I can contact you so figured I'd drop a comment here. I was wondering if you'd be able to do a video (if not done already) on how a beginner finds out how to do something without copying code fromt eh internet. For example, we have the programming language's documentation, but that's only specific to teh language, it doesn't tell us how to make an IRC client with it, how would a beignner know how to do IRC? We have RFCs, which I think a lot of beginner programmers don't know about, and although they can be more complex in some regards, they are important. And in my experience, university doesn't teach about RFC and other resources to figure out 'what to do'. I watched a video where someone was making a bot for Twitch - and the person knew how to make a TCP/IP server from scratch - how does someone go from learning a language, to learning how to do something like that with that laanguage? - if that helps you understand my question.
@mayaforte25 жыл бұрын
I found your question to be very interesting. I think most older professionals started out with electronics and courses in mathematics and/or physics. Computer science courses didn't really exist back then. Books on UDP, TCP and IP are readily available and have been for a long time. I suppose you would have once purchased a book which would talk about the details of the thing you wish to understand. Your knowledge of RFCs is very helpful in this regard as you rightly point out. I suppose you'd look at the RFC for TCP, etc. But the paradigm of client/server architecture is something that I believe is taught at universities so perhaps that would have given you a fundamental introduction to certain core principles? You are lucky to live in today's world with the internet to be able to search for these things, and I wonder why you'd ask how one would know how to write something given that I assume you yourself would search for examples and thus learn from them? I would like to mention that there is also an aspect of creativity that must exist for a good developer; sometimes you are writing something that hasn't been written, and examples will not exist. The fundamental question is usually, "what problem am I trying to solve" and then, "what do I already know about this problem"? Apologies for my ramblings.. your comment was thought provoking.
@codebreakeruk65335 жыл бұрын
@@mayaforte2 Your ramblings are welcome. I agree my question is odd considering the age of the Internet or more specifically the Web - but you got the core of my question at the end, which how one goes from zero examples and instruction, to solving a problem, creating that idea from scratch. I am more interested in the creative spark that comes to a programmer in a moment of problem solving. It's a difficult question for me to phrase because, and I suppose the TCP/IP example was a terrible one, but if say, one wanted to create an accounting program, accountancy has been around for generations, it's easy enough to get a book on the core concepts and talk to accountants on what they need from such a program. My question comes to something that does not exist already, I look at when Unix was created and think "What on earth possessed them to create it? How did they know which direction to take?" But from your response, I suppose it really just comes down to trial and error, a good understanding of the problem and analysis of what it is to solve and ultimately accomplish. I just look at today's world, where we have APIs all over the place, we hook and call into our operating systems, our browsers, we interconnect to all of these previously built systems in order to then make today's applications. Compare that to when Unix or Windows was created. (Of course i'm not asking anybody to show me how to make an OS) Take video games for example, they are marvellous examples of mathematics, from grids and tessalations for terrain geneartion and mapping, or complex geometric shapes for charactersa nd objects, these are all described mathematically. Perhaps again, to your comment, it comes down to the way of thinking mathematically, logicallly, and scientifically, and through any combination of those, programmers figure their way through a problem and solve it. And, I suppose, that way of thinking is sahped through experience and practice.
@insertoyouroemail5 жыл бұрын
This video is the blub paradox in action.
@filcondrat5 жыл бұрын
how is it
@ArneBab5 жыл бұрын
@@filcondratsee wiki.c2.com/?BlubParadox
@cktken3336 Жыл бұрын
Actually the variables the way you talked about them and looping isn’t universal. Purely functional languages / declarative languages don’t allow for or while loops, and their definition of variable is actually strict equality in the way that math you talked about works, not assignment to a location in memory. For example in Haskell, a = 42 means “a is another way to write 42, and this will always be true for everything in a’s scope”. b = getStrLn means that “b is another way to write the ‘get a line of input’” function, NOT “assign the result of that function to b”.
@dan99485 жыл бұрын
Probably one of the best & concise explanations a program! But very far from "all programming languages", as it is *very* specific to programming in a C-style imperative language.
@sjmom51193 жыл бұрын
you can have code that is excuted outside of a function
@Mr.Nichan Жыл бұрын
11:29 Is that true? I thought that's what "functional programming" meant. Have I been programming in Python wrong this whole time, since I only ever define functions when I expect to have to reuse the code in more than one part of the program? EDIT: I've just realized that this probably has to do with what kind of programs you write. Most of the programs I've written as saved files (rather than just defining them in the shell for one-off use) have been little games, where you input whatever data you want it to use, AFTER the program starts, but, when you write programs for handling data, or programs designed to be run by other programs, it's natural to run the program as a function, or, in my experience in Python, to import a function from the .py file and use that (although, if you only want to do one or a few things with the program, you can just hard-code in the path of the file you want the program to take data from, and change it in the code if you want to process something else).
@PWRR Жыл бұрын
There is no 'wrong programming' if it achieves the objective ***(1). I view the 'functional programming paradigm' definition to be: a function doing just one thing and sending functions/output to the input of other functions to achieve the desired objective. Last year, I used C++ Geospatial Data Abstraction Library (GDAL) libraries because they did what I needed to do with data I was receiving from various sources. This year I am using QGIS's Python console to process data. I could use the C++ QGIS API but I would then need to build plugins ***(2) so other non-programmers could use them or standalone applications (or VBA plugins for Excel - been there, done that and would prefer not to do again as some people viewed it as 'magic' and were very suspicious). *** (1) Please spare me Machiavellian comparisons of people that are incorrectly programmed and/or behave. (2) Processing functions don't always implement the advertised functions, parameters or output nor do they fully cover the QGIS API.
@Mr.Nichan Жыл бұрын
@@PWRROne point is that I usually do define functions before commands that handle input and output, and you could define commands I give outside of any function as an implicit "function", if you were used to thinking if things that way. I've just started my first formal programming class, and they're teaching C++ with a textbook, and I notice that, though they're definitely not teaching functional programming (i.e. pure functions) they still always want me to define a main function and put whatever I want done in there, and it's just called whether I want it to be or not. I notice Python error messages always talk about everything happening in a __main__ (KZbin is turning the outermost underscores into italics, unfortunately.) function, or whatever it's called, so I'm guessing the interpreter/compiler written in C is either using __main__ to interpret, or is sticking some or all of the Python program into a __main__ function, and I'm guessing programmers from the C tradition view Python as just making the main function implicit, rather than C++ as wanting you to you to stick your non-function code into a function for no apparent reason.
@PWRR Жыл бұрын
@@Mr.Nichan Aye... You may want to take a look at this KZbin video by Corey Schafer: kzbin.info/www/bejne/qabKp6F-dpx4ors He also has a play list on Python that is excellent. It ranges from the basics to the 'probably never use' advanced stuff and includes practical application of numerous Python libraries along the way. Word of warning - I have been programming in countless languages since the 70's and learned that 'Just because you can, doesn't mean you should.' In other words, if someone can't explain 'why' I would want to or need to do something in code, I probably shouldn't be doing it.
@peacefulchange4465 жыл бұрын
Bro, nice vid. Only 40 sec in. Already know its going to be good ^_^ yes good to see u upload. Thanks. Hope all is well.
@sliver170 Жыл бұрын
11:32 What? Python and Javascript never required me to write everything in a function. I never have to write the word "main" even once.
@mskiptr Жыл бұрын
I was with you till 2:14 Purely functional languages do not natively have variables nor do they have loops and stuff like that. (kinda like Excel) I don't know that much about logic programming languages, but I'd expect them to diverge from your description even quicker
@mskiptr Жыл бұрын
6:18 That's a big oof for any functional language. There, statements aren't really that important. You deal primarily with expressions and assignments (naming your values). Instead of execution you have evaluation.
@SharifSourour5 жыл бұрын
You didn't cover data structures or converting different numerical variables on different systems but I suppose that would be more "development" or "engineering" than programming. Very nicely done!
@researcher4good2 жыл бұрын
"Collections" on slide two is how he described data structures.
@lilypadsy4 жыл бұрын
is codeschool.org dead? any plans to put it back up?
@cmdv422 жыл бұрын
💯
@rursus83545 жыл бұрын
That doesn't cover assembly.
@herrfriberger55 жыл бұрын
This does apply to assembly, for the most part, although less so to machine code.
@rursus83545 жыл бұрын
@RebornOccasionally. Foremost my pupils (that program microcontrollers) need to know how to compile assembly and upload the hex code to the MCU:s. If you are programming a PC, assembly is very unlikely, then your Java or Python may suffice, but anyone programming microcontrollers need to know it, since optimizations, speed and interrupt control might be needed for certain applications.
@Raattis4 жыл бұрын
I'm curious, which part off assembly isn't covered? I was thinking the same thing at first but when I thought about it more I changed my mind. For example, there are no explicit loop statements but there are loops, etc.
@KayOScode3 жыл бұрын
@Reborn ive had to write assemblers and emulators in assembly
@FlashManinSpace5 жыл бұрын
Prolog isn't anything like this 😳
@aloveofsurf5 жыл бұрын
You provide a valid counterexample. The title is not exact. We forget numerical applications if we suppose that even programs are exact. If Prolog was the only exception then he speaks with great precision because 1 - (1 prolog divided by the number of programming languages) is very nearly 1. An operator needs to account for the behaviors of tools to ensure work is adequate. He is far less exact than off by one counterexample when he says variables change state when many functional languages hold variables immutable. There are probably many more hasty generalizations than that. It feels as though Brian Will is trolling for pedants and we hooked ourselves... He provides a nice abstraction when he prioritizes the concepts of data and their structures over details of implementation. I applaud this example of how being a pedant can obscure the value in a message: when I focus on finding a fight then I perceive less of what's right.
@ArneBab5 жыл бұрын
@Sungindra SetiawanAnd there are implementations of logical languages you can embed straight into lisp. A really minimal example is μKanren: webyrd.net/scheme-2013/papers/HemannMuKanren2013.pdf + arxiv.org/pdf/1701.00633.pdf - find more on minikanren.org/
@campsitez23555 жыл бұрын
if you skip "PROLOG" you're probably not a "pro" and should cut your gdam ponytail off.
@welltypedwitch4 жыл бұрын
11:43 well... in a lot of languages (Python, JavaScript, Go?, ...) you can have code outside of functions.
@ji10464 жыл бұрын
He said programming language hehe
@EdPin_4 жыл бұрын
Nice template, just a few colorful animations, just a bit simpler language, presented a bit slower and even average kids could grasp it in one condensed lesson.
@filker05 жыл бұрын
I generally agree with most of your opinions about the topics you cover on your channel, but there are a few places where we diverge. In this case, you may simply be over simplifying for the sake of the intended audience, but I think that some things are important for a beginner to be cognizant of: - A program's output may be the control of other programs. In some cases, a programs only purpose is to exist (the trivial idle process, for example). - Not all programming languages support functions, and some languages distinguish between procedures from functions. - Not all programming languages provide explicit loop constructs (while, for); some provide only conditions (if) and explicit branches (goto). - Parallel programming languages have concurrent functions where the caller continues execution until it uses the result of the function call, at which point it waits for the value to be available before continuing. - Not all languages support strings as a basic data type. - Not all programs are hosted by an operating system. Even some programs that are hosted (especially those hosted by real-time and/or embedded kernels) do their own I/O. The kernel itself is one or more programs. When you introduce hypervisors, this gets even more fuzzy. - The convention of "main" being the name of a procedure that is automatically invoked when a program is started is not universal. In some languages, it is immediate code (statements outside any named procedure) that is executed, in other cases the entry point is specified either at build or execution time. - There are languages that are not procedural or sequential, such as VHDL. SQL also falls into this realm. Regular expressions also. I wouldn't bring this up except that the video implies that the assertions are universal. The most common languages beginners are likely to encounter, and the programs they are likely to write, do exhibit the characteristics you list.
@brazni5 жыл бұрын
good points, although VHDL isn't a programming language it is a hardware describing languages. you can also make the case that SQL and regex isn't programming languages in the conventional sense of the words. I think this illustrates the underlying issue of making a video likes this, there are a lot of grey zones that might, or might not be, relevant to a beginner.
@mskiptr Жыл бұрын
Logic and functional languages also diverge from his description pretty quickly. And one cannot argue they aren't 'programming'
@judasseispuertos41632 жыл бұрын
Notes to take from here: The data you choose to program on is as important as the methods by which you program.
@researcher4good2 жыл бұрын
My favorite quote from Linus: "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."
@marcusdavenport1590 Жыл бұрын
This is definitely Developer Talk... Example: 7:56 Looping - would be great if you simply said "This could almost be called "until" aka keep adding this Number until this meeting this condition." That is how you translate Looping into English lol Show an example of it, why it'd be useful for someone who's creating a project. Otherwise you end up with half the class not understanding what you're saying.
@yungifez Жыл бұрын
Apart from not !, what wise uses just 1 operator
@chethelesser5 жыл бұрын
Cool that the title of the video is a statement in itself. I agree - doesn't matter what the language is like, it has to have these things
@FreeScience5 жыл бұрын
It should probably have said "Most programming languages" or "every programming language has at least one of" for the list at 2:02. I know that this should be as non convoluted and without explaining every caveat, but It's probably good in the vein of this video to prepare the viewer for the different paradigms.
@LukaSauperl5 жыл бұрын
I wonder if none programmers will be able to understand this
@Manquia5 жыл бұрын
If each section of the video was isolated off and the viewer gave a lot of time and examples in the language they are using, then it is probably useful. This format is likely useless for most people. I remember watching similar videos when I started programming and they didn't really help me that much. I learned vocabulary, but no the way to apply it to my learning. My teaching experience in K-12 further pushes me to think that this is completely useless to the most student, but I don't have a sample size to prove it. This is a nice video and I don't want to dunk well-produced programming content. However, I don't know who this is for?
@LukaSauperl5 жыл бұрын
@@Manquia Yeah... As a person who's in a teaching position for programming, this video isn't very useful, as it might confuse the students rather then teach them the fundamentals. The problem with students (as far as I've noticed) is that they don't have patience to learn programming, because let's be fair, programming takes time, and A LOT of students are scared or don't know how to use Google... ( I had one of my students write code like this (JS) document.write += "bla bla bla"; And I, of course, asked him if he googled what he wrote, and he said that he didn't know what to google... So I did what I had to do and I googled document.write, took a screenshot, then pressed the first link and again took a screenshot... I know that this might seem a bit belittling, but I don't know who else to show the students that google is the answer for most questions. He then said that he wanted to print a variable, but that he doesn't know how... (and the game begins anew) (For those wondering the answer is: document.write variable, then click the first link.) ) As to who is it for? I think it's for us the programmers for two reasons: - To have fun and laugh a bit, - To in a way revise the basics, the pillars on which most languages stand.
@zikomo89135 жыл бұрын
I do find Brian's videos very useful, like this one, some of his videos teach computer science theory in an introductory way, which perfectly serves my need for such content as I'm self studying CS. -This content helps me to see the big picture. I can always read books to learn how to program xyz, but CS theory is not only important but it's a plus to know on a general level what I'm actually doing! -For a long time I wondered what OOP was, and I learnt it on a conceptual level in just 30 mins from Brian' video on same, actually made notes, this way, I can always go ahead and dive deep later into topics from actual/rigorous resources.
@ninig95215 жыл бұрын
Bruh.
@JanKowalski-se7tn5 жыл бұрын
/dev/null is a pretty useful gizmo... :)
@u9vata3 ай бұрын
Its sad there is no mention of FORTH whatsoever - or any of the concatenative style languages...
@GeorgeTsiros Жыл бұрын
data has only 1 underlying type: _enumeration_ we represent _anything_ else through that "string" as a distinct, dedicated type needs to die a fiery death
@zikomo89135 жыл бұрын
What happened to your website, codeschool.org?
@simpleprogrammingcodes38343 жыл бұрын
It doesn't seem to exist.
@kapteinkonyn34503 жыл бұрын
Great content. Just one thing: In C++ variables are not necessarily copied when passed as arguments to functions. If passed by reference, you are actually referencing the same variable in memory. Not sure about other programming languages though.
@mlgpro22413 жыл бұрын
Same goes for C, but I guess that's obvious
@kourii2 жыл бұрын
He did explicitly say that the _value_ passed into the function as an argument is assigned to the intra-function parameter variable. Noöne said anything about copying the variable. What you said is right (and generally true of run-of-the-mill programming languages), but you aren't correcting anything he said
@reinux4 жыл бұрын
Every structured procedural language*
@piaere3 жыл бұрын
Br(ill)ian(t) Will
@pigboiii5 жыл бұрын
Great concise video. If I would have been taught this I think it would have clicked sooner what exactly code really is and how computerd work. To all the people arguing with him on minor stuff: for real people? Obviously this isnt exactly targetted towards people that are at a level where they need to/can understand that. I srsly doubt you guys learned english at the oxford level instead of just easy sentences and words. Or physics with all the exceptions to newtonian physics right out the gate.
@JR-mk6ow5 жыл бұрын
I saw this title and I was expecting a bunch of memes lol. Not a informative video
@MyAce85 жыл бұрын
*every procedural programming language.
@linuxguy11995 жыл бұрын
Assembly don't have if statements, while loops, or functions. It just has jump, call, and ret.
@kmr_tl45095 жыл бұрын
jne
@herrfriberger55 жыл бұрын
It depends. Many assembly languages have the procedure (function) abstraction as well as syntactical variables (not just memory locations). Some even have ready made loop instructions.
@flyingskyward21535 жыл бұрын
There's multiple assembly languages, they have different instructions and different mnemonics for them.
@herrfriberger55 жыл бұрын
@@flyingskyward2153 Mnemonics.
@flyingskyward21535 жыл бұрын
@@herrfriberger5 Well now I feel like an idiot. Thanks for the correction!
@zeocamo5 жыл бұрын
Brian talking about c/c++ here for the "if", in other languages like javascript "if" do not only take booleans it take any value and convert it to a boolean, this is really useful
@oracleoftroy5 жыл бұрын
Replace C and C++ with Java and C# and your statement would be more accurate. Both C and C++ allow non-boolean expressions as if conditions.
@ChadieRahimian5 жыл бұрын
I clicked on the video expecting to hear a song.
@jvcmarc5 жыл бұрын
Assembly is not a part of every programming language?
@Mr8lacklp5 жыл бұрын
Neither is Haskell or prologue apparently
@jvcmarc5 жыл бұрын
@@Mr8lacklp neither prolog
@jvcmarc5 жыл бұрын
_or html_
@Mr8lacklp5 жыл бұрын
@@jvcmarc to be fair there is an argument to be made that html isn't really a programming language, for instance: It isn't Turing complete
@jvcmarc5 жыл бұрын
@@Mr8lacklp that's why it's in _italics_
@obiwanus5 жыл бұрын
If I were a total beginner, this video could have made me think that programs are some entities within a computer that write to files or send data over a network (as per the first slide). It probably would've been more helpful to specifically point out that the computer does all that, not the programs. Just saying.
@EconaelGaming5 жыл бұрын
Agreed. I usually start off with explaining that program code are instructions which a computer follows, similar to a cooking recipe. However, I don't know how useful that actually is to the students.
@chethelesser5 жыл бұрын
Good point. I think the target audience is savvy enough to understand that though. Most people have common sense knowledge of what computers are like, especially ones that would be interested in watching the video.
@seckinkukrer69205 жыл бұрын
This video is not about the Every Programming Language. It is about the Imperative Languages...
@herrfriberger55 жыл бұрын
Perhaps one point he's trying to make is that all languages are imperative at some level.
@seckinkukrer69205 жыл бұрын
@@herrfriberger5 I would love to be. But, if your approach is the same to all Programming Languages; You have a serious problem. Also, Programming isn't about directives, it's about data, and it's journey to the desired shape. The philosophy of programming is not that at all --imperative--. Computer Science is so young, but it will be grow, be mature. These are just the phases, I think. I'd like to end with this; catonmat.net/what-would-john-mccarthy-say-if-he-saw-you-programming
@herrfriberger55 жыл бұрын
@@seckinkukrer6920 You would love to be what? Who mentioned directives? Programming is about solving practical problems, either classic computational problems or the state machine type of applicances and applications. "Computer science" is in many ways not a science. It is more like a culture that partly employs science (physics, electronics) and mathematics. Important parts of it are around 60 years old (Algol 60, Lisp, Simula, etc.). With many fundaments being around a hundred years old (Shannon, Church, Nyqvist, etc.) or older.
@TheddunTOSS5 жыл бұрын
Very good video. However, you should change the title to "Every Imperative Programming Language in 15 Minutes", because it does not match with logical or functional programming languages.
@SarahScratches5 жыл бұрын
functional programming languages are just imperative languages but without loops. 😉
@Alche_mist5 жыл бұрын
The constructs are named differently and the coder behaves slightly differently around them, but they are hidden there even with those paradigms.
@yura9795 жыл бұрын
@@SarahScratches such a false statement. Not sure if trolling or ignorant.
@Mr8lacklp5 жыл бұрын
@@Alche_mist they really aren't there in the theory.
@SarahScratches5 жыл бұрын
@@yura979, I'm not ignorant and I was joking a little bit, but really, functional languages have got most of the things that are described in the video apart from loops.
@JR-mk6ow5 жыл бұрын
Everything sounds simple until you start dealing with networks and system calls. FFS, all those forks and pthreads with asynchronous requests inside them. Ffs
@fu22012 жыл бұрын
Can you make this more dry..............
@derekfrost89915 жыл бұрын
Some information here is not correct. There are a ton of languages which are mathematically pure. When you say they are useless without side-effect output, this is open for debate but some exist whether you like it or not.. like Zenlisp. I've used it for my home accounts for example.. :)
@TheAndreArtus5 жыл бұрын
Are you merely using it to warm a room? A system with 0 outputs is little more than a space heater. If you (or any other thing) can see a result, by any means, you have output. If you are using it for accounts then you presumably have ways of seeing the result f a computation, no?
@Manquia5 жыл бұрын
Hey Brian, can you change the description? There is no way a "total beginner" will understand this, and there should not be an expectation that they should be able to understand it. I know the intent of this video may be to inform, however, I feel the description may instead discourage because of the level of complexity you go into. This is mostly what a systems-level programming language handles/uses so you may also want to specify that in the title. My main issue is with the "total beginners" which is just dismissive and rude. Like, if you don't get this why are you even here! P.S. Probably going to get downvoted for this comment...
@matthewlind31025 жыл бұрын
Agreed that beginners won't grasp everything. Still, it is worthwhile for total beginners to watch this and not understand it.
@Manquia5 жыл бұрын
@@matthewlind3102 Exposure to a topic will almost always improve a determined individual. However, exposure can cause less determined people to shy away and become disinterested. Calculus has this problem in spades. Calculus is complex because of the minutia of the algebra, but the core elements are quite simple. Many people get stuck in the minutia and fail to continue learning because of their exposure. personally, this happened to me in the opposite way. My first experience with programming was with C++ as a black-box language. We didn't go into great detail about how anything worked and this greatly discouraged me from programming. Years later, I am learning the same materials in a more focused manner and end up building a love of programming. Now I am a full-time software developer, even though my degree is in game design and programming. There should be some care into at least the framing of exposure to the audience. The video's content is fine, I just have a problem with the description using the term "Total Beginner". Finding something like this is the sort of thing which could encourage a newb programmer to give up to pursue other fields because they don't' get it.
@amisner2k5 жыл бұрын
I was fooled by your title. I thought you were going to go over every programming language as a sort of quick tour/overview with hopefully some interesting factual nuggets about them I might not have known. I was disappointed to instead see a video telling me everything I already knew. I even skipped ahead some to see if there would be some new nugget of knowledge to glean but it was just more "Programming Languages 101" stuff. I don't know, this feels out of place from your regular content where you go into great detail of a single programming language, tool, or pattern...this video felt like going back to kindergarten.
@teroisannainen94405 жыл бұрын
This video is about: "see the forest for the trees".
@tg44815 жыл бұрын
OOP stole my wife
@7Earthsky5 жыл бұрын
Nerrrrds.
@HarmonicaTool5 жыл бұрын
"but at any one moment a variable is storing just one value" - so a variable cannot contain many values at a time, like in R were every variable contains a vector of values??Obviously a click bait title. Should maybe be "What many C derived languages have in common". Others have pointed out, that loops are not part of Haskell or Prolog. Stating that a function has a name is often not true even in mainstream languages such as Python (anonymous functions/lambda expressions) and in many languages the same function name can apply to different "bodies of statements" (if the argument numbers and types differ, cf generic functions in R). Seriously, no mentioning of the difference of functions and methods? Seriously: Function calling does not prohibit multithreading. The "system call" explaination is not very suited for all those virtual-machine languages. "No code exists outside of the functions? Again not true for e. g. python and R and Perl and excludes Shell-scripting. Perl and R code starts at the start, not at some function called "main". The video could as well have stated, that block of code were always within curly brackets.Again: A lot of this is not only wrong for exotic languages like Prolog, but also for widely used languages like Python, Perl, R, Shellscripting thus not "every programming language".
@Janis_P5 жыл бұрын
I was waiting until you actually get to the languages. lol
@mintoo2cool5 жыл бұрын
On infinite loop, a comment.. wouldn't you say it's desirable to have infinite loop for the case of servers ?
@paulurban25 жыл бұрын
/dev/null
@autarchprinceps5 жыл бұрын
"Every program must output data" - I don't know. I have written a lot of stuff, that just performs external actions / triggers things, with little to no data required. Unless you apply a really rediculously wide definition of data, I would say you constrain yourself too much. And before you say, I'm nitpicking. The difference between programms designed to calculate and output data in the narrow sense of the term and programms with business logic that live for side effects, triggers and actions is one of the main reasons why we still have even entire branches of different programming languages. Try writing a trigger / action based scenario programm in a hard functional programming language, and you will have real issues almost immediately, write a programm that is all about getting a data result from an input and they are awesome. Loops might also be an issue, if you take programming languages to a wider field. Regex for example doesn't have loops by definition. Sure most do have functions, variables and loops, but go to slightly more exotic places, and you will already have issues identifying them as such, if they exist at all. Theoretically and to a certain extend practically in stuff like hadoop, streaming sql or such things, you can express every manipulation of data as a series of maps and reduces. Try finding your while statements there. If you title it "Every Programming languages" you can't just assume C, Pascal and Basic derivatives. There is a wider world of crazy shit out there some people might even spend all their live coding in.
@Richard-dn2nq5 жыл бұрын
Fuck you
@SOARRRRRR5 жыл бұрын
cobol is the most difficult programming language to learn for me. Years later I learned cobol was invented by a woman. All of a sudden everything made sense.
@herrfriberger55 жыл бұрын
It probably has more to do with COBOL being an early language. The first variants of FORTRAN was not exactly easy to use either.
@rkvktmen5 жыл бұрын
Actually, it was designed by a team of six, four of whom were men, but you sure put those wimmin in their place.
@SOARRRRRR5 жыл бұрын
@@herrfriberger5 I never used Fortran. Cobol has formats and phrases makes that language very complicated and always makes you feel you forgot something. Subtle meanings are buried in the phrases. Think about the Perform Through for example, and the PERIOD! The language is designed to trip a man. Hopper was divorced and never married.
@stephenkamenar5 жыл бұрын
my web browser isn't a program that takes input and gives output
@112BALAGE1125 жыл бұрын
Wouldn't you agree that displaying web pages on your screen is output and taking in mouse clicks/keyboard strokes is input?
@stephenkamenar5 жыл бұрын
@@112BALAGE112 based on his definition, i wouldn't think web browsers or games were created by programming langauges
@112BALAGE1125 жыл бұрын
@@stephenkamenar I found myself convinced that his description fits the c++ language well, in which many browsers and games are written.
@cristianbrici70745 жыл бұрын
Clicking The mouse îs input în vg and The caracter shooting îs output
@uwuzote Жыл бұрын
mutable variables? bruuuuuuuuuuuuuuuh, disgusting, we in Haskell does not have this shit
@vladimirkraus14385 жыл бұрын
The explanation of variables is not correct for example for Python. Variable is not a named location in memory, nor assignment overwrites anything. :)
@KaranLobana5 жыл бұрын
I am pretty sure the interpreter does actually have a named reference for variables. Due to duck typing, whenever a variable changes its type during runtime, assignment does infact overwrite.
@FlyingGuySFO5 жыл бұрын
I assert that the ONLY two things a computer can do is loop and branch. Everything else is based on those two things.
@EconaelGaming5 жыл бұрын
I'll bite. How do you assign value to a variable with just looping and branching.
@FlyingGuySFO5 жыл бұрын
@@EconaelGaming Ok, so lets define how a variable is created / generated. Remember EVERYTHING in a computer is only a simple matter of a voltage, it is either low enough to be considered a 0 or high enough to be considered a 1. So if I connect a voltage to a pin on a computer, and it does not loop, it will simply just be a voltage on a pin, but if the computer has a clock firing at some frequency, it can sit there and toggle that value through a set of gates that can then assemble a set of gates that have voltages that are a combination of 1's and zero's that can, when interpreted correctly ,can be the value of 42! Now a variable, in the case of RAM is simply a set of bits, that are interpreted by this machine we have defined, as a VALUE. That's is how ONLY looping can set a variable to a value. BRANCHING is the act of either running some code or running some other code, which without looping, would never happen. Try turning off the ONE oscillator that sets everything in motion.
@FlyingGuySFO5 жыл бұрын
@@shaurz Grumble grumble grumble... Kinda sorta, but not really. You have to loop to branch, but you need not branch to loop. They are closely related, but with a one way dependency. But I am grumbling...
@herrfriberger55 жыл бұрын
Well, you forgot the single most important thing computers do - *arithmetics.*
@herrfriberger55 жыл бұрын
@@shaurz Well... both looping and branching are jumps.
@altairel-ghoul68025 жыл бұрын
This should be titled *"NO programming language in less than 15 mins"* since it speaks of no PL but of what a program in an *imperative* PL is at a very abstract level. Then, there are functional PLs, whether "impure" (e.g., LISP) or "pure" (e.g., Haskell), as well as logic PLs (Prolog). And, for all such kinds, variations with object-oriented typing for the representation and manipulation of structured data. Finally, one must explain the difference between macro languages, interpreted languages, scripting languages, and compiled languages, and combinations thereof. But your video is a good waste of 15 mins for youngsters eager to learn how to write code that is useful for some non-trivial applications without spending more than 15 mins. They might feel disappointed though.