Building Software Applications From START To FINISH


Hey, what’s up? John Sonmez here from simpleprogrammer.com. Tired of pushy recruiters sending you LinkedIn
requests for jobs you have no interest in? Tired of blasting out resumes into the dark? If so, you should check out Hired.com. Hired.com flips job searching on its head
by having top employers like Facebook come to you after you fill out one simple application. You also get your own job coach to help you
on your next job search. If you haven’t checked it out, I highly recommend
you at least fill out the application. Just go to Hired.com/simpleprogrammer. When you get hired with Hired, you’ll get
double the normal sign-on bonus for using that link. I got a question on how to build software. This is something that I get a lot. A lot of programmers out there especially
new programmers they feel like they’re learning the programming language and they can fix
some bugs and they can do some stuff, but they can’t really build a software application. I totally can relate to this question. This was me for a long time. I questioned my ability as a software developer
and I said, “I’m not really a programmer. I’m not really a software developer because
I can’t actually really build a full application from start to finish. I want to address this here. The question is kind of broken up a little
bit. This is from Sriharsh and he says that, “You’ve
already answered 2 of my questions, Top IT fields that pay you a lot of money and how
to avoid distractions. Great answers, I’ll be learning VR development
this summer and I’ve also been following the 4-quadrant rule and the 80-20% rule.” Pareto’s law. He says, “Ahhh….I still have to learn STL. But after learning all of this all I can make
is programs in command prompt. How do I actually make software? Actually, I still don’t know what can C++
do. Yes, I have tried coding competition but that’s
not real software. I want to make real software and not just
small programs in the command prompt. Can C++ do anything on its own or do I have
to learn web development to make use of C++? What do I do, is there any other thing I have
to learn? Please help me.” Okay, so a couple of things here. You’re going about learning the wrong way. This is not the most effective way to learn. I’m going to go into a little bit of the details
here and give you the bigger principle and overview of this, but I do have a course on
how to learn anything quickly. It’s called 10 Steps to Learn Anything Quickly. You can check it out here. I highly recommend that you make the investment
to buy this course to be able to learn this because—especially if you’re doing like
this and going about things the wrong way. I don’t mean to knock you. You’re learning a lot of stuff, it’s great. It’s great that you have the enthusiasm, but
I’m telling you that this is not the most effective way to learn. The reason why—it comes down to this basic
principle which is one of the things I talk about in that course is that a lot of people
they try to learn information by just like grabbing knowledge from here to here. You have this bag and you’re like, “Okay,
let’s take some STL and put that in there and how about function pointers? Boom. I need to learn about object oriented programming. Boom. Put it in there.” You’re trying to fill your bag with all of
this knowledge. Now the problem is that the ability to actually
do something is applying knowledge. Wisdom is really the application of knowledge. Understanding is really what you’re seeking. You can have a ton of knowledge but have no
understanding. I’ll give you a good example here. I’m learning a foreign language. I’m learning Italian. I could learn all the vocabulary. I could know a whole bunch of Italian words
but until I actually put it in practice and have conversation with people, it’s not going
to do any good. One of the methods I’m using is the Pimsleur
courses. It has you talk back. It has you answer questions and so it’s using
your brain. It’s making you use that Italian in conversation. It’s taking that knowledge and it’s applying
it. That’s how you get understanding of the language. The same thing I could say like you could
read all about how to do the perfect golf swing, but until you’re actually out there
swinging and applying what you know you’re not going to actually have understanding and
you’re not actually going to develop that skill at all. In this case, what you’re doing is you’re
grabbing that bag of knowledge and you’re trying to fill it up so that you have all
this knowledge and that’s the wrong approach. What you need to do is you need to start from
the application. You need to say, “I am learning X so I can
do Y.” I talk about this a lot but this is so critical. If you’re learning without a goal, if you’re
learning just for the sake of learning, that might be great for Jeopardy or trivia, but
even then, you’re going to be more successful if you’re trying to prepare for Jeopardy by
actually specifically learning to prepare for Jeopardy. What you want to do is you want to shift your
focus and say, “I am learning X so I can do Y.” what is your Y? Start with the Y. IF you’re learning C++ that’s—why are you
learning it, so you can build what? That’s why you’re having a struggle here is
because you’re going backwards. You’re trying to learn all the syntax and
all the functionality and then you’re like, “Uh, what do I build with this?” or “Can I
even build something with this?” You don’t even know. But if you work backwards, right? One way to do this would be to pick out an
application that you want to be able to build. I mean why are you learning programming in
the first place? Why are you learning C++? So you can do what? So you can say you know C++? That’s useless, right? So you can get a job? Well, okay, so you can build applications. Start with the application. What is the application that you want to build? Think about the purpose of it. Maybe you have to do some research and see
what kind of applications that people typically build with C++ if that’s the tool you want
to use. Or maybe you might even pick a different programming
language, but you start with the application, with the reason why you’re learning something. If you say, “I want to build a web application”
and you make the restriction that you have to use C++ that’s fine, but now what you’re
doing is you got to tell you’re learning in order to be able to accomplish that thing
right? If I wanted to learn how to surf I would have
drills that I would practice. I would have things that I could do in order
to accomplish that goal. I wouldn’t just be doing those drills for
the sake of doing those drills. You see what I’m saying? You’ve got to know what your end goal is,
what are you trying to accomplish? In your case, it’s building applications. One of the things I highly, highly recommend
that I think is a great way to be able to build applications, to build real software
is to build some mobile applications, right? This will give you a ton of confidence. It’s super easy to do today. You can learn the entire life cycle process
of actually building an app and getting to an app store. What you could do is you could say, “Okay,
I want to build a simple application.” Define what it’s going to be and then work
backwards from there and say, “Okay, well, what do I have to learn? How do I create a screen?” I have to learn how to create a screen in
Android or whatever it is, or iOS. How do I make a button? Now I have to go and research and learn how
to make a button or maybe I can figure some of that out. How do I make it so when someone presses a
button it does something, it pops up a message? Then you go and you learn that. You’re learning based on what you need to
know and then that’s going to stick. It’s going to be understanding as opposed
to just learning, as opposed to just stuffing knowledge into your big bag of knowledge. That’s useless. You’re going to be actually learning. You learn best when you answer your own questions. Again, a lot of stuff I cover in that course
on 10 Steps to Learn Anything Quickly. I highly recommend that. That’s the basic framework that you need to
utilize in order to learn. What you’re doing is—it’s just not going
to be super effective. You’re going to forget most of that knowledge. It’s not going to help you as much. I speak from experience because I made these
mistakes. I used to read books cover to cover and then—on
a whole bunch of different technologies just thinking I could acquire all this knowledge. It didn’t really work that well. I only grasped maybe 5% of what I would read
so I was wasting 95% of my time. But then when I started doing it goal/outcome
focused on what I wanted to accomplish, what I wanted to—I want to learn X so I can do
Y, I could learn X so much more effectively. I hope that helps you. This is definitely, like I said, a question
I get a lot. It’s a mistake I made. A lot of people are making mistakes on learning
things the wrong way, but ultimately, just have an objective in mind and work backwards
from there. Yes, it will be hard. Yes, you’ll have to figure stuff out, but
that’s how you learn. It’s not just memorizing stuff. It’s a more painful way to learn, but it will
give you true understanding and that’s what you’re after, not just about acquiring a bunch
of knowledge. It has to be put into application as soon
as you learn it in order to really make it stick and there’s no better way than working
backwards on that. All right, if you liked this video, if you
haven’t subscribed already don’t forget to click that Subscribe button below and you’ll
get the videos. I do about 2 to 3 a day here on this channel. I’ll talk to you next time. Take care.

Add a Comment

Your email address will not be published. Required fields are marked *