I've followed you for a while and just read your description, learning that you are a software developer. Are you a programmer, per chance? I wish to become a programmer (& make programs, eventually videogames) & would love an insight on software development. Please forgive me if I make wrong assumptions based on my interpretation of software and programs being similar if not one in the same? Also, if you are a programmer, what's your preferred language? Thanks for taking the time to read this.
Did someone say "software development"?
Anyway, yes, I've been working as a software developer for more than two years now (ahh, how time flies--), and programming is one of my skills. As for the difference between a programmer and a software developer, I say the latter encompasses more fields. A programmer tends to specialize in coding, whereas as a software developer, you need to be exposed to all aspects of the software development process (i.e. coding, testing, etc). Both will have to deal with team dynamics as well, though I'm under the impression that the latter's more involved with regard to it. On the subject of software and programs, I view a "program" as a subset of a particular "software", in which a particular "software" is composed of one or more programs, which may or may not have been coded by the same person. Like, if I were to deliver something to a client, it would be a "software" rather than a "program".
That's my take on the topic, though you might get a different answer from another person. On a general scale, I'm reasonably confident about my answer, but the terms may be interchangeable depending on who you ask. Or which company you're applying to (like some places use "software engineer", some use "software developer", and others use both and distinguish between the two).
As a software developer (or "developer" for short) in my current company, I am expected to help out in whatever phase of the software development process a particular project is in. We use a modified version of the waterfall model (the method we use is not in the list, as it was literally modified to suit our company's needs, but the link should provide you a gist of what it's about), and I help out by doing technical investigations, coding functions, testing and bug fixing, and proposing solutions to whatever design problems the module assigned to me encounters. In that regard, a project is almost always a team effort, and you'd rarely see a team that's just composed of less than ten people. I'm usually assigned to 2-3 projects at a time, with one as my "major" project and the other two being my "adhoc" projects. In that regard, the whole software development process (from system analysis and design to production), usually takes 1-3 years, not counting maintenance.
As for my preferred language, my favorite is Python (I like the rationale behind it, among other things), but on the job, I use Java more often than not. Python's more of a hobby for me, ahaha. Knowledge of HTML, CSS, and Javascript is also handy, since we deal with web development and those are the languages you need to properly display the user interfaces. And of course, behind the scenes, there's SQL. I'm most used to Oracle, so yeah, that's my preferred language for database systems.
What kind of insight do you wish on software development, though? There's a lot of things I could say on the matter, though I'm not quite sure where to start. If you need any clarification on the terms I used, feel free to ask!