So what is software development?
To me, software development is leveraging the power or using the power of computers
For good, using the power of computers to do something to help people.
Software developers create software that allows family and friends who may be a thousand miles
Away from each other to be able to stay in touch and to connect.
Software development makes information available to a lot more people.
Software developers build desktop applications, web applications, websites, and mobile applications.
- And software is just about anywhere you look.
- There’s software in your car.
- There’s software in your microwave.
So how do software developers do what they do?
How do they leverage the power of computers to do these things?
Developers do this by writing instructions in a language that the computer understands.
The software developer writes instruction to tell the computer what to do and this instruction
Is written in what we call programming languages.
There are many different kinds of programming languages based on the kind of instruction
That you want to give a computer or the type of problem that you’re trying to solve.
At the core, there are usually three simple things that software does.
The first thing is it takes some kind of input: that input might be from a keyboard, it might
Be from a voice, the input might be from another computer.
The second step is it usually does some kind of processing or manipulating the data
Or whatever it is that was input.
And then the third step is output.
The output might come through the screen; it might come through the speakers, or it
Might go to another computer.
To give you guys an example: if you go to your browser, which your browser is a piece
Of software, and you type in SylvesterMorgan.com that’s the input.
The computer is going to take the input and if you type in SylvesterMorgan.com, its
Going to start looking for (this is the processing) it’s going to start looking for the coolest
The website that it can find and then the output is going to display an awesome website that
Will help you become a software developer.
You have software that does things as simple as calculating the pay for an employee.
It takes in the number of hours of work and the pay rate and then it does some kind of
Processing.
It will calculate regular pay and overtime and then it does the output.
It tells you how much the employee should get their paycheck.
Or, more complicated things like take the input. Type in an address where you want to
Go and it does the processing.
It applies all these algorithms that find the fastest route to your destination and
Then it gives you the output.
It gives you the directions to that destination.
So basically software developers use these tools to solve problems and to create things
Or build things.
So what kind of tools do software developers use to do this?
Of course, we use the software.
We use a program or a set of tools in software that allows us to, that gives us this development
The environment is what we call it, and within this environment, there are so many tools
At your fingertips.
There are components that you can drag and drop so that you can create the user interface
Right on the screen and see how it looks.
Then you can dig into what the code behind that is.
Everything is color-coded to help you understand what’s going on in the language, whether its
The key word in the language or it’s a word that you made up.
There are a lot of cool and powerful features that really allow the developer to do something
Powerful.
So this may sound intimidating but is really not.
Most developers are not building these things from the ground up.
There’s already this huge foundation in place that allows the developer to build on top
Of these things.
For example, if you got hired as an entry-level developer, they’re not going to ask you to
Build something from scratch.
You’re probably going to be working with an existing code base so you would be just fixing
Things within this code base, fixing bugs or adding new features, adding small features
At first and then moving on to something more advanced.
I mean, even if you’re building your own personal project, there are going to be templates that
You can use and things that will make it easy for you to build things.
You can just download pieces of code and then tweak them to fit your needs.
So again, basically, software developers take the power of computers and tell the computer
What to do in order to solve problems.
So now let’s talk about computer science and the difference between software developments
And computer science.
As I started my journey all the way to now, every now and then I see a comment or a type
Of comment online (it’s usually on somebody’s page or blog or video) where they’re talking
About how they made a living developing software, how they learned software development and
Then apply those skills to companies.
And they make a good living doing it.
And you’ll hear these comments from some people.
You’ll see or hear comments that say things like, you cannot be a good software developer
Without that computer science background,
You need to have the foundational computer science knowledge.
You need to go to a university and get a computer science degree before you can even touch a
Computer. Quota; OK, I’m exaggerating just a little bit.
I watched a video where the guy talked about how he dropped out of college because he was
Not interested in the computer science curriculum and the things that he was learning.
He wanted to solve problems with software development.
A comment said, Well, you’re not interested in what the class was teaching because of you're
Not really interested in computer science or math or the theory behind it, so, therefore,
This is just not something that you’re cut out to do. But this is simply not true.
Yes, computer science is the root of software development.
Software development is an application of computer science.
They are two separate things and you can be interested in software development, you could
Become very good at software without having an interest or passion in math or computer
Science.
In fact, the development tools that I was talking about earlier were created with this
A goal in mind: There created to make software development more accessible to more people.
There created so that the software developer can focus on being productive at solving problems
And building things.
These development tools purposefully abstract away or hide the intricate details, the intricate
Computer science foundation, and give the developer a set of tools that allow them to
Do things very productively without needing to know the intricate details behind the scenes.
So why are these people frustrated with the fact that some people are leveraging that?
Power to do what they are passionate about?
I think that going the self-taught route rather than the traditional four-year degree route
Is becoming more popular and some people may have a concern about the quality of developers,
Which I have a concern about also.
Maybe they think that some people are entering the field because they see it as something
Easy and something that they don’t have to work hard for which I would disagree with,
Although, I don’t buy that reason because that is not a problem that is unique to self-taught
Developers.
You’ll find just as many computer science graduates who are not passionate about computer
Science or passionate about learning more and growing as a professional.
I’m not saying that the computer science knowledge and that the passion for computer science
And math is not necessary or it’s not important knowledge.
In fact, I highly respect those people who have that knowledge and passion and there
Are definitely some fields, some professions and career paths that absolutely require that
Knowledge.
But they are not the same thing.
They are not the same set of skills and interests.
I don’t think it’s what most people or a lot of people are actually interested in, those
Who is interested in becoming software developers?
If you are interested in solving problems and using those tools to help others to build
Cool things, to create, then yes, software development is something that you can do.
It’s something that you can become very skilled at without that foundational computer
Science knowledge.
But I would encourage you to develop an interest and dig deeper into those things when its
Necessary for what you’re trying to build.
I think it’s always good to have an interest in understanding how things work behind the
Scenes, this kind of passion and curiosity, but it’s not something that’s foundational
Or needed to get started.
I think that as you become a software developer and you start getting more experienced, you’ll
Start getting a better idea of what foundational knowledge would help you do your job better,
Or maybe help you solve problems more efficiently, or make better use of the tools that are available.
But don’t let that stop you from getting started.
Get started.
Take advantage of all the powerful tools that you have at your fingertips.
OK, so to recap.
Software development is the use of programming languages and tools to write instructions
That a computer understands in order to accomplish something, in order to solve a problem or
To build something, or to automate something.
And software development is an application of computer science.
Computer science is the root and the foundation and software development sits on top of that,
But they are not the same thing.
You can start becoming a very productive and skilled software developer without that foundational
Knowledge, but as a true professional, it’s good to always be curious and dig deeper into
Those things as necessary or as you’re interested.
difference between computer programmer and software developer
There is no higher authority that can prevent you from picking up a software language, taking
Your computer, and going and creating something awesome.