Software Engineering: Crash Course Computer Science #16

preview_player
Показать описание
Today, we’re going to talk about how HUGE programs with millions of lines of code like Microsoft Office are built. Programs like these are way too complicated for a single person, but instead require teams of programmers using the tools and best practices that form the discipline of Software Engineering. We'll talk about how large programs are typically broken up into into function units that are nested into objects known as Object Oriented Programming, as well as how programmers write and debug their code efficiently, document and share their code with others, and also how code repositories are used to allow programmers to make changes while mitigating risk.

Want to know more about Carrie Anne?

Want to find Crash Course elsewhere on the internet?

Рекомендации по теме
Комментарии
Автор

2019: Just wrote this magnificently sophisticated code. Only two know how this works: Me and God.
2020: Now only god knows.

asifshahriar
Автор

The more I watch this series, the more the "a new level of abstraction" animation makes sense to me.

__donez__
Автор

Wow! Object Oriented Programming has never been explained so well and in such a short time. Crash course rocks!!

salishadventures
Автор

3:47 Can you spot the guy who puts up the middle finger? I'm serious, he's there and it's funny as hell. XD

werewolf
Автор

I've never encountered a programmer who documents their code enough.
Including myself.

Alverant
Автор

This series is very well done. As most developers (myself included) have tried and failed to explain our field it is wonderful to see you succeed. Keep it up.

Agrarian-Wizard
Автор

Is it just me, or to real software engineers see the comments to this video as mostly a bunch on in-experienced newbies who have learned some buzz-terms and see this an an opportunity to argue theory or what IDE/language is best? As someone who has been designing and building software applications for 15 years, I can tell you that, professionally, what matters is results and the ability to problem solve. For those of you looking to get into software engineering, stop getting so hooked up on ideological debates, language debates or buzz-terms. I don't care if you bought a book that teaches you how to answer 150 programming interview questions that you won't be asked! I'm not going to hire you if you can't demonstrate ability to problem solve and deliver a product. Engineering is all about solving problems that someone else hasn't solved yet, it's about learning how to make the code do what you want it to do, with some opportunity to refactor and improve along the way. I look at code I wrote 5 years ago and I think most of it's ridiculously ammature, and yet 5 years ago I was still a senior software developer making over 120k because I was able to solve problems. In the end, business does not deliver software, it delivers service and software drives the service. If you can master the creation of software that does the job and does it well, then you are valuable, you bring value to the cause and you will make a lot of money, and 95% of everything people are saying in the comments will never matter - ever!

davewatts
Автор

"Don't be that person" @7:08 also applies when you revisit YOUR OWN code months later and don't remember wtf is going on

ReverendMeat
Автор

*Opens 1 year old C program with no comments
Only God knows now. (╬ಠ益ಠ)

phillypt
Автор

Software Engineer here, great overview of what I love to do everyday! However, one critique on the video would be that often programmers do "check out" the same code (or file) and are able to both commit their code after they've safely merged their changes together. We use text/code merging software to make our jobs easier such as the popular Beyond Compare or many other great tools. Keep up the awesome videos!

OmicronVega
Автор

6:12
Yes! Anyone new to programming should know that having lots of bugs to fix doesn't mean you're not learning anything, and in fact, helps a lot with the learning experience.

Enedee_
Автор

The new level of abstraction elevator is my favorite part of the series!

tylerkimball
Автор

I'm really enjoying this Crash Course! Thanks for all the hard work you guys are putting into these, it really shows. Can't wait for more episodes. Cheers

brandonbodine
Автор

But you did not specify whether I should use Tabs or Spaces to indent my code!!!

oOMonkeyMagicOo
Автор

I've been a polyglot developer for some time now and I gotta say, this course is so on point, from the T-shirt easter eggs to the cool Thought Cafe animations, I wish i had this kind of material when I was starting up. good job

guinetik
Автор

Something to note about Alpha versions is that it's a lot more common for indie developers to release alphas as they often don't have the resources to do rigorous testing and (especially for game developers) often want feedback from their communities on the direction of the project.

Yhsanave_
Автор

This is quite simply the best you tube series on computer science that there is.

rossrkk
Автор

That feeling when you had an exam on OOP literally one week ago and you still didn't understand it -- until now.

TheQballChannel
Автор

The best programming environment is obviously atom. :)

Please note: Be careful when discussing what programming environment you prefer with software developers. It is a quick way to get into long heated arguments.

Carry Anne didn't mention this, but in addition to documentation, you should also use good variable names. Instead of calling a list of letters "a", or "list", you should call it "letters", or even better "listOfLetters". If you don't name you functions well, when others go to debug something in your code, they will get a headache. Documentation tells users what a function/object DOES, but good naming conventions will let others know HOW IT WORKS.

MFMegaZeroX
Автор

I might need to watch this one again. That was a lot of info packed into one video.

Geo