How to Become a Good Software Developer

Software Development is no longer considered as an art. But it was made as an engineering practice. A successful software developer is a person who is able to write each line of code with passion. And passion cannot be obtained by any software engineering degree, it must come from within yourself.

Choose one language and learn the basics

 Too many beginning programmers try and jump into everything all at once and don’t have the patience to learn a single programming language before moving forward. They think that they have to know all the hot new technologies in order to get a programming job. While it is true that you need to know more than just the basics of a single programming language that you think you would be likely to base your career around. The programming language itself doesn’t matter all that much, since you should be thinking for the long term here. What I mean is you shouldn’t try and learn an “easy” programming language to start.

Aspects of developer’s job may include:

  • Software design
  • Actual core implementation (programming which is often the most important portion of software development)
  • Other required implementations (e.g. installation, configuration, customization, integration, data migration)
  • Participation in software product definition, including business caseor gap analysis
  • Specification
  • Requirements analysis
  • Development and refinement of throw-away simulations or prototypes to confirm requirements
  • Feasibility and cost–benefit analysis, including the choice of application architecture and framework, leading to the budget and schedule for the project
  • Authoring of  by users and implementation partners etc.
  • Testing, including defining/supporting acceptance testing and gathering feedback from pre-release testers
  • Participation in software release and post-release activities, including support for product launch evangelism (e.g. developing demonstrations and/or samples) and competitive analysis for subsequent product build/release cycles
  • Maintenance

In a large company, there may be employees whose sole responsibility may consist of only one of the phases above. In smaller development environments, a few, or even a single individual might handle the complete process.

 Build something small

Now that you have a basic understanding of a single programming language, it’s time to put that understanding to work and find out where your gaps are. The best way to do this is to try and build something.

Don’t get too ambitious at this point–but also don’t be too timid. Pick an idea for an application that is simple enough that you can do it with some effort, but nothing that will take months to complete. Try to confine it to just the programming language as much as possible. Don’t try to do something full stack (meaning, using all the technologies from user interfaces all the way to databases)–although you’ll probably need to utilize some kind of existing framework or APIs.

For your first real project you might want to consider copying something simple that already exists. Look for a simple application, like a To-Do list app and straight out try to copy it. Don’t let your design skills stand in the way of learning to code.

Learn a framework

Now it’s time to actually focus on a framework. By now you should have a decent grasp of at least one programming language and have some experience working with a framework for mobile or web applications.Try to go deep with your knowledge of the framework. This will take time, but invest the time to learn whatever framework you are using well. Don’t try to learn multiple frameworks right now–it will only split your focus. Think about learning the skills you need for a very specific job that you will get that will use that framework and the programming language you are learning.

Learn design best practices

Now it’s time to go from junior developer to senior developer. Junior developers maintain systems, senior developers build and design them. (This is a generalization, obviously. Some senior developers maintain systems.)

You should be ready to build systems by now, but now you need to learn how to design them.

You should focus your studies on design best practices and some advanced topics like:

  • Design patterns
  • Inversion of Control (IOC)
  • Test Driven Development (TDD)
  • Behavior Driven Development (BDD)
  • Software development methodologies like: Agile, SCRUM, etc
  • Message buses and integration patterns

 Learn a database technology

Most software developers will need to know some database technology as most series applications have a back-end database. So, make sure you do not neglect investing in this area.

You will probably see the biggest benefit if you learn SQL–even if you plan on working with NoSQL database like MongoDB or Raven, learning SQL will give you a better base to work from. There are many more jobs out there that require knowledge of SQL than NoSQL.

You have sufficient knowledge of SQL when you can:

  • Create tables
  • Perform basics queries
  • Join tables together to get data
  • Understand the basics of how indexes work
  • Insert, update and delete data

Practice Coding best practices

When you are writing code, try to make sure you understand what every line of code you write does. The same goes for any code you read. If you are exposed to code, slow down and make sure you understand it. Whatever you don’t understand, look up. Take the time to do this and you will not feel lost and confused all the time.

  • Code Complete
  • Clean Code
  • Error Solving

10 Steps To Make Your First Mobile App

10 Step To Make Your First Mobile App

 

Do you want to make a mobile app? Do you want to walk the wave of other promoters, or did you come across a problem that you feel you can decide? The answer of this question will determine whether your app will be successful or not.

Here is a point to get you started, but note it may not work for everyone. Take from it what suits your strategy best. The important part is to get started.

Step 1: find an idea or a problem. If you already have an app idea, move into step two. If not, read on. Want to build an app but don’t have an app idea? What you really need are problems, and they’re everywhere!

Successful entrepreneurs solve problems in a way that we couldn’t have imagined. When you look around you, every product and service you use were all created to solve a problem. You wanted to get from one place to another faster, you got a car. You wanted to get from one country to another faster, you got planes.

So look for problems in your daily life and list each one of them. Once you have an exhaustive list, then start to think on how you can resolve them and shortlist the ones that make most sense.

Step 2: Identify the need. Validation will prove that a demand exists for your app. You can validate your idea by using the Google Keyword Planner tool to look for the number of people seeking out what you’re trying to do. You could also build a landing page that broadly highlights your app idea and seek user interest through an email signup.

Step 3: Lay out the flow and features. Validation of your app idea means that you’ve got something that people want to use. Now is the time to detail your product onto a document, or if you want to go the extra mile, use a wire framing tool.

When putting your idea down on paper, remember to be as detailed as possible. Include the flow of how the user will navigate the app as well as all the features envisioned. This will help your developer to clearly understand your expectations.

Step 4: take out non-core features. From the flow and features document you prepared, start looking closely at features that you can remove. Offer only the core value of your app idea. Do not make features in the first version that are “polite to have” and can always be added later as an update. This will help keep the opening costs of development down and also help you get to market quicker.

Step 5: locate design first. I have heard many entrepreneurs saying they want a very basic design and want to focus on just developing an app. They are so wrong! Design is not just about how your app looks, but it’s about how a user will experience the app. Ravi Ranjan of ydorsoft.com best explains it: “plan is a way of making technology useful.” So look for a developer who puts design (user experience and graphics) first.

Step 6: appoint a designer/developer. Seek a development company that has great design talent and a solid development team. While hiring a developer, go online to check on their authority and the apps that they have created. If you really liked an app they created from their collection, chances are, they could be the right one for your product.

Step 7: Build developer accounts. You must register for a developer account with the respective app stores to be able to sell your app through their platform. Google’s Android charges $28 a year and Apple charges $79 annually. You have the option of registering as an individual or as a company, if you already have one formed.

Step 8: incorporate analytics. Analytics help you track downloads, user engagement and maintenance for your mobile app. Make sure you use tools such as outbreak, which is available for free, and Localytics, that has a free and paid version.

Step 9: Get comment quickly and improvise. Once your app goes live on the app store, the first set of customers’ usage and behavior will give you insight into how to improve and enhance your app. Enhancements and changes are constant, so keep an eye on user feedback and keep building.

Step 10: Begin features. You built version one with limited features and only the core offering. Now is the time to evaluate and introduce the remaining features that were left out in the initial version. You will know through analytics and feedback whether the features are relevant anymore.

These steps are not sacred, but rather a guideline to building your app in the most effective manner based on my experience. Once you’re ready to start, you must also know that building a mobile app is the easiest part. Getting customers is where the challenge lies.