3 answers

What books would be helpful in understanding more about software development for applications?

Asked Kearny, New Jersey

The reason I am asking is because I wanted to try out a sample project of working with applications in software development. I wanted to know of some good book reads to know more about the process. Also if I could get any advice if I were to code everything in java, like any helpful advice for coding in that language or recommending any books or websites that could help me better understand the process of applications in software development. #computer-programming #software-development #software-design #mobile-applications #java-development

3 answers

Mark’s Answer

Updated Morrisville, North Carolina

Hi! You are doing this the right way in looking at the materials first and trying a project second. :)

One thing to understand is that building an application is a LOT like building a house. Different aspects need to be considered (two story house? Three?) materials (wood siding? Brick?), heating (electric or gas), etc.

In software the analogous decisions are "User Interface" (Windows? Java Beans? Command Line?), "Language" (C? C++? Java? Python?), and platform (PC? Tablet? Phone? All of the above?)

Overall, it is good to start smaller/simpler and expand over time. There are lots of fun abilities to learn... but they do take time... and so learning a FEW at a time is a good idea. I have personal projects (and so does my son who is in the field) that have extended over YEARS of time. So smaller projects where you can see results are good. :)

This all being said, let me recommend one book: "Managing the Software Process" by Watts S. Humphrey. This will seem like a odd choice at first (it talks about "how to build projects" and not how you code), but it is like giving you a book on "General Contracting" for a house. :) A house needs an Architect, a Carpenter, a Painter, a Plumber, an Electrician , and so on. What does a software project need? An what should you do first? And second? Watts gives an expert's view of how this work in software. As a beginner... don't worry about understanding it all... but if you LIKE this field, you may be surprised how useful this book is!

Enjoy, and best of luck! Patience and a longer view is just as important as learning a new language in this field. :)

As a software business analyst I approve of this answer. :)

Morgan’s Answer

Mark gave excellent advice above, and Rashida is correct - there is a TON of stuff online. My job as a business analyst is to ask the client a few basic questions to get the ball rolling before a development methodology is even discussed. WHO will be using this application? User personas can be helpful to figure this out. WHAT problem is this application solving for? Is there a gap in a particular market that you see opportunity for? Is this an application that will be an integration point for another application(s)? WHERE will this application live? Is this local software to be installed on a computer, or a mobile app, or a hosted solution or a combination? WHEN does this need to launch and WHY that date? None of these questions have to be answered definitively except maybe for the "who" part of it before you bring in your development team. Part of the work I do involves making sure that applications are actually user friendly which is why I focus a lot on the "who" in the beginning. I don't read a lot of books specific to development, but one I have reread and referenced numerous times is "Don't Make Me Think" by Steve Krug. It's about usability. The most important piece of wisdom I will impart here is that any application is completely dead in the water if the "WHO" can't figure it out how to use it. Sometimes you'll go through the exercise of gathering requirements and it just doesn't make sense in one way or another to actually build the thing. I'll be honest - I wish that happened more. I will also suggest that you read up on Agile Methodology. It's what all the cool kids use for development but it's also a great way, as you are learning to build applications, to build them in bite-sized pieces of completed functionality.

Rashida’s Answer


codeacademy.com is a good website for learning. Khan academy has some fantastic resources if you are a beginner and lots of video tutorials about computer science.