Posted on

4 Reasons Why Programming is a Great Profession

4 reasons why programming is a great profession

This post is an opinionated piece. In it, I will briefly go over 4 reasons why I think programming is a great profession. If you are looking for the right career field and are considering programming, then you may find this helpful. If you would like to find out more information, then you can check out my posts about 5 challenges new software engineers face and 4 tips on professional development that will help you get the job.

Job Security

If you’re like me, the first thing you think of when choosing a career is job security.

When I initially chose computer science as my college major, I had no idea what a “program” even was. I was not aware of programming languages, how they worked, or the difference between software and hardware. In my own mind, I was simply looking for which major could provide me with the best safety net.

It was 2010, and the American economy was still struggling to get on its feet. Many people were losing their jobs, even friends and long time acquaintances. As a reaction to it all, I chose the field of study I thought would save myself from unemployment.

Fast-forward a few years and I am working happily as a software engineering consultant. There has been no shortage of jobs for developers and we will most likely fail to see a shortage of good developers in our lifetime.

Computers and technology are here to stay and will be the driving force to even greater things we as people accomplish in the coming years. Without skilled developers (and engineers and scientists), none of this tech would exist. As long as you are willing to work hard and learn, you will have a seat at the table.



Exercise Creativity

A programmer can code whatever he/she can think of. Literally.

Video games, websites, custom applications or even a smart mirror. Soon, developers will be creating more applications for virtual and augmented realities. The possibilities are truly endless when it comes to what can be created with code.

Creativity and careful planning are necessary every step of the way, as well.

Projects have their own life-cycle, user-interfaces need to be sketched out, and use cases or “stories” must be written about how users can interact with your software. All these scenarios can lead to a programmer creating something which helps people achieve greater goals and can leave someone feeling better than they did before experiencing what you’ve built.

Never Stop Learning

There is so much more to software engineering than just writing code.

Sure, in the end source code is what tells an application how to respond to a user’s actions. Source code is what tells an application how to look, feel, and think. However, a proper development environment must first be configured before any code is written. Compilers, frameworks, version control, IDE’s, database and application servers all must be chosen, installed and set up. An application’s architecture should always be defined for moderately sized projects.

There are so many different pieces to the puzzle that is programming, and to some people, that is one of the greatest things about it.

Programming as a profession, you will find yourself learning new things on a daily basis. Each new lesson is a reward in itself. Each new challenge you surpass is another accomplishment, another notch in your belt.

From the technologies, to getting over the many conceptual hurdles which make up your code, the best programmers are the ones who learn quickly and problem solve efficiently.

Good Programmers Can Work Anywhere

Once you’ve acquired the many technical skills of programming and application development, you may not have to rely on working for someone ever again.

A programming professional can be his/her own boss.

Thanks to the internet, it is more possible than ever to make a living working from home. You can create a website, or work as a freelancer for clients, but you will never need to answer to a higher power. This lifestyle may not be for everyone, and as I stated earlier, I am still working as an engineer for a consulting company.

However, there are also remote positions which have become more and more common in recent years. Interviews, meetings, and deliverables can all be passed via digital medias. Through websites such as https://www.flexjobs.com/ and https://remoteok.io/, the dream to enjoy a life away from the office is within everyone’s grasp. And as a professional programmer, you are more capable of accomplishing these goals than perhaps any other profession on the planet right now.

Thanks for reading!

If you liked what you read, please share with others who might be looking for their next career choice. If there is a different topic you’d like me to write about, please leave a comment below.

thanks

Posted on

6 Steps of Application Development for Beginners

Application Development for Beginners

In this post, I’ll attempt to highlight the major steps of application development for beginners working on a small or individual project. This content assumes knowledge of the software development life cycle and some basic programming experience.

Step 1 – Think of an Idea

It’s true what they say…everything begins with an idea. Whether you are thinking of working on something original, or if you plan to build your own version of an existing application (a great practice for soon to be engineers), you cannot move forward without the idea.

Consider keeping an idea journal & make it a point to constantly jot down random thoughts, regardless of how you feel about the thought itself. Constant brainstorming is an excellent habit to have in order to promote your own enthusiasm for project development.



Step 2 – Requirements Analysis & Choosing a Technology Stack

There are more than a handful of well known options available when it comes to what can be used for putting together a project. In order to decide which stack is for you, first seek to understand your idea from a project management perspective and analyze its requirements and goals.

Your requirements analysis should come in the form of answers to questions. Answer questions like, “How can I break my project idea into smaller parts or modules?“, and “How do I want a user to interact with creating an object in the system?” List these out in a word doc or on a piece of paper. These requirements will turn into your checklists during the prototyping phase of step 4, and will also serve as a base of documentation & planning, allowing smooth transition into Step 3.

Based off your conclusions here, you can accurately research a tried and true group of technologies (languages, IDE’s, frameworks, database servers, etc..) to utilize when working on your own project ideas. Keep it simple and try to find a stack with lots of community support & online resources.

Step 3 – Documentation & Design Planning

Yes, a small project should have some documentation and careful planning, even if in the form of a few torn pieces of paper with to-do lists that resemble chicken scratch. Docs can be represented in many different ways because all that matters is that they aid the engineer (you) in implementing solutions to your problems.

Therefore, taking the time to plan your individual project’s  code base and life cycle is absolutely critical to ensuring things like its scalability and support down the road. Expect drafts and edits to be ongoing throughout your project.

Step 4 – Prototyping

This is the part where we start programming.

A proper prototype should demonstrate the core functionality of the project’s goal(s). It’s constructed so that changes can be made to an application’s planned life cycle, which is inevitable in real-world scenarios. Prototyping is also still a part of the design phase. Feel free to experiment with different concepts and evolve the original idea of your software. There are no limits to what you can develop when programming.



Step 5 – Testing & Refining

As with many of the steps of application development, there is some overlap and back-and-forth work which takes place during the different stages. This is most evident when it comes to testing and refining your project.

In this step, you will be testing and going over code you wrote during the prototype phase, and correcting any mistakes made during the designing and planning of your software’s code base. Work to ensure that your application is robust and can handle random interactions from users. Cleaning & organizing code into blocks of functions that make sense and an architecture that is laid out nicely is the best way to guarantee your software will have a life past its first deployment.

Step 6 – Deployment

The deployment process depends on the type of software you are constructing. A mobile app is packaged, encrypted and signed before being uploaded to the mobile store. Web applications usually have their code base and resources copied over to what are known as “production servers”. If your application is a client-based program, there may be information which your users are required to download before utilizing the software.

Regardless of what type of deployment process meets your specific needs, you can be proud for a brief moment and understand that you’ve accomplished something that is anything but easy.

From here, the next phases would look something like working on marketing strategies, listening to feedback and analyzing your users’ trends. Then, of course, it’s time to plan your first update and continue the cycle!

Thank you for reading!

Thank you for checking out this post. I really hope this helps those of you who have been wanting to start your own projects but were unsure of how to get started or what it means to develop an application on your own.

If you liked what you read, you can check out this post here to find out some challenges I faced working as a new software engineer.
Please share and comment on some of the projects you have worked on and any steps that I left out of the application development cycle. You can also comment on some other topics you may be interested to see me write about.