5 answers
Asked
663 views
Informational Interview For A Software Developer
1. What are some technological tools I should get familiar with as a Software Developer?
2. What should I do to prepare to become a Software Developer?
3. Do you expect hiring for this job in the South East Region to increase, decrease, or stay the same over the next few years?
Login to comment
5 answers
Updated
Fred’s Answer
1) None. Tools change all the time. Different companies use different tools to accomplish the same goal. Focus on understanding concepts. If you understand the purpose of source control, it doesn't matter as much which you use as they all do similar things. Learn how to research how a tools works. If you know how to read APIs, it doesn't matter if a company uses Java, Python, Perl, or something else. You know how to research how to do what you need. If you focus on learning Python, you can only code in Python.
2) Learn fundamental concepts. Write clean, neat, simple code. Learn to spend more time THINKING , and less time TYPING. As a beginner, you should probably spend 90%+ of the time planning, developing, and analyzing what you need to do, and only 10% of your time typing in actual code. Even now, after 20+ years as a developer, I'm probably at 75% thinking. Contrary to what most beginners think, this actually SAVES time.
I'd rather have someone on my team who thinks, asks questions, pokes and prods a problem for hours before writing a line of code, than someone who skims the requirements and starts coding in 5 minutes.
Practice writing code. It should be simple, clean, modular, and easy to understand. Use good variable and method names. Use actual words, not shortcuts. "myVar" is a terrible name. "cnt" is not much better, and "counter" is barely better. "transactionCounter" is pretty good, depending on context.
3) I don't have any special knowledge on this, SouthEast area or otherwise. Generally speaking, Software development is always growing and changing. Nothing is ever guaranteed, but this field seems pretty safe and secure.
2) Learn fundamental concepts. Write clean, neat, simple code. Learn to spend more time THINKING , and less time TYPING. As a beginner, you should probably spend 90%+ of the time planning, developing, and analyzing what you need to do, and only 10% of your time typing in actual code. Even now, after 20+ years as a developer, I'm probably at 75% thinking. Contrary to what most beginners think, this actually SAVES time.
I'd rather have someone on my team who thinks, asks questions, pokes and prods a problem for hours before writing a line of code, than someone who skims the requirements and starts coding in 5 minutes.
Practice writing code. It should be simple, clean, modular, and easy to understand. Use good variable and method names. Use actual words, not shortcuts. "myVar" is a terrible name. "cnt" is not much better, and "counter" is barely better. "transactionCounter" is pretty good, depending on context.
3) I don't have any special knowledge on this, SouthEast area or otherwise. Generally speaking, Software development is always growing and changing. Nothing is ever guaranteed, but this field seems pretty safe and secure.
Thank you, this is amazing! I really needed it.
martell
Updated
Joe’s Answer
1) For the most part, I agree with Fred's answer. Tools do change constantly over time. Sources of information, however, are more stable. Learn to recognize valuable answers to common questions. I often refer to StackOverflow for problems I come across, but I take care to thoroughly read responses to see if they fit my use case. I will also do my best to find similar questions and compare solutions. Mozilla's MDN site is very useful for concept definitions that are relatively easy to understand -- though some entries require more background knowledge than others.
2) Regardless of where you end up putting your focus in software development, the ability to assess problems or requirements and break them down into discreet steps is immensely valuable. This is something you can practice by taking a thoughtful approach to any of your creative hobbies. Break down your process into discreet steps. Write out an outline of your overall task. Identify the steps that are more complex than others, break those down into their own small steps. This sort of exercise will help you to approach a wide array of software development tasks without getting overwhelmed. Another thing that helped me prepare for software development before I had even chosen to pursue it was practicing logic puzzles. Constructing logic is a pretty universal task in software development. Practicing with games like sudoku or logic puzzles ( just google "logic puzzles") will help train your brain for some of the issues you'll face in software development.
3) Unfortunately, I am unable to comment on the future of hiring practices in the South East. However, since COVID, many firms are more willing to hire workers for remote work than they ever were before. Working remote isn't for everyone, but being able to stay on task while working from somewhere that's not an office or classroom is a skill that will lead you toward success. If you can do that, you increase your marketability as an employee and you'll be able to broaden your search for employment.
2) Regardless of where you end up putting your focus in software development, the ability to assess problems or requirements and break them down into discreet steps is immensely valuable. This is something you can practice by taking a thoughtful approach to any of your creative hobbies. Break down your process into discreet steps. Write out an outline of your overall task. Identify the steps that are more complex than others, break those down into their own small steps. This sort of exercise will help you to approach a wide array of software development tasks without getting overwhelmed. Another thing that helped me prepare for software development before I had even chosen to pursue it was practicing logic puzzles. Constructing logic is a pretty universal task in software development. Practicing with games like sudoku or logic puzzles ( just google "logic puzzles") will help train your brain for some of the issues you'll face in software development.
3) Unfortunately, I am unable to comment on the future of hiring practices in the South East. However, since COVID, many firms are more willing to hire workers for remote work than they ever were before. Working remote isn't for everyone, but being able to stay on task while working from somewhere that's not an office or classroom is a skill that will lead you toward success. If you can do that, you increase your marketability as an employee and you'll be able to broaden your search for employment.
I appreciate you taking the time to answer this.
martell
Updated
Brenda’s Answer
I would suggest practice writing and reading code. It's not so much which tools you use but how you solve problems and the ability to learn new things. Try tackling a personal project and solving a problem with code. This will give you an opportunity to practice many skills needed as a software developer: planning, resourceful, asking questions (plus more). Keep the project small, you will be amazed at the amount of detail work you will encounter. Once you complete a project, share it with others and get feedback, not only on the actual project but also your code. Always keep learning!
I appreciate your support, Brenda
martell
Updated
Carlos Miguel’s Answer
Hi Martell,
Everything Fred has said, I 100% agree with, so I don't want to restate what has already been answered. I'm going to try and build off of what's already been answered.
1. What are some technological tools I should get familiar with as a Software Developer?
Just like Fred said, tools change all the time. What's important is the program you are enrolled in. Any program that's worth their salt will teach you core programming language and computer science principals that will enable you to adapt your skills to any language, tool, or framework you want to try. Assuming you are a student, try your best to get a feel for all types of programming so you can find your interests. Challenge yourself! I found that my biggest interests are web development and machine learning and I would never have known that if I didn't take a risk and try out those classes.
2. What should I do to prepare to become a Software Developer?
When I started college for a computer science degree I was not expected to take as much math as I did. If I could tell myself some advice, I would've told myself to stay up on the math when I was in community college so that I wouldn't have to take them at university.
A good software developer reads, kind of a lot. In my day-to-day, I'm reading a lot of documentation on tools and frameworks. This might seem basic, but some developers don't like reading the documentation and end up missing out on features, warnings, and other vital information had they just "RTFM"! I also suggest taking a technical writing course to hone your technical communication skills.
3. Do you expect hiring for this job in the South East Region to increase, decrease, or stay the same over the next few years?
Post-pandemic life fueled the work from home workers. I can't speak specifically to the South East Region, but nowadays, it's much easier to land a fully remote job, say, in Long Beach, California, while living in the Pacific Northwest. When I look for job openings, I'd say around 70% of jobs are fully remote. So I think that in general, hiring will go up no matter where you are.
Everything Fred has said, I 100% agree with, so I don't want to restate what has already been answered. I'm going to try and build off of what's already been answered.
1. What are some technological tools I should get familiar with as a Software Developer?
Just like Fred said, tools change all the time. What's important is the program you are enrolled in. Any program that's worth their salt will teach you core programming language and computer science principals that will enable you to adapt your skills to any language, tool, or framework you want to try. Assuming you are a student, try your best to get a feel for all types of programming so you can find your interests. Challenge yourself! I found that my biggest interests are web development and machine learning and I would never have known that if I didn't take a risk and try out those classes.
2. What should I do to prepare to become a Software Developer?
When I started college for a computer science degree I was not expected to take as much math as I did. If I could tell myself some advice, I would've told myself to stay up on the math when I was in community college so that I wouldn't have to take them at university.
A good software developer reads, kind of a lot. In my day-to-day, I'm reading a lot of documentation on tools and frameworks. This might seem basic, but some developers don't like reading the documentation and end up missing out on features, warnings, and other vital information had they just "RTFM"! I also suggest taking a technical writing course to hone your technical communication skills.
3. Do you expect hiring for this job in the South East Region to increase, decrease, or stay the same over the next few years?
Post-pandemic life fueled the work from home workers. I can't speak specifically to the South East Region, but nowadays, it's much easier to land a fully remote job, say, in Long Beach, California, while living in the Pacific Northwest. When I look for job openings, I'd say around 70% of jobs are fully remote. So I think that in general, hiring will go up no matter where you are.
Your advice was so helpful!
martell
Updated
Jonathan 〰️’s Answer
1) I would say there are few good tools to learn, or at the very least be familiar with
1) Continuous Integration (CI) Tool: It can be Jenkins, or it can be TravisCI, or even Github actions. Build automation is standard in the industry, the flavor just changes from company to company
2) Infrastructure as Code Tool: This can be something popular like Terraform or Pulumi, or it can be something more relevant to a cloud provider like AWS CloudFormation. It's very common, and very good practice, to have all infrastructure in a descriptive, re-deployable format.
3) Code Versioning: Git is the most common, but there is also Mercurial (basically git) as well as older systems like Subversion. Git is popular, powerful, and most likely the one you'll be working with in the industry. Learn how to properly branch your code, submit a pull request, and manage merge conflicts. That'll cover 97% of your Git usage.
2) Learn to think in steps, don't worry too much about a particular coding language or paradigm. We like to believe computers are smart, they are not. They are boxes with lightning inside. You, the programmer, have to put intelligence in the box, and you do that with simple step-by-step procedures. Once you've completed processes for a bunch of simple steps, you can then chain your simple steps together into more complex solutions to handle more complex problems.
3) Yeah, I can't help much here. In general, software developers are in demand right now, but I can't say anything about a particular region.
1) Continuous Integration (CI) Tool: It can be Jenkins, or it can be TravisCI, or even Github actions. Build automation is standard in the industry, the flavor just changes from company to company
2) Infrastructure as Code Tool: This can be something popular like Terraform or Pulumi, or it can be something more relevant to a cloud provider like AWS CloudFormation. It's very common, and very good practice, to have all infrastructure in a descriptive, re-deployable format.
3) Code Versioning: Git is the most common, but there is also Mercurial (basically git) as well as older systems like Subversion. Git is popular, powerful, and most likely the one you'll be working with in the industry. Learn how to properly branch your code, submit a pull request, and manage merge conflicts. That'll cover 97% of your Git usage.
2) Learn to think in steps, don't worry too much about a particular coding language or paradigm. We like to believe computers are smart, they are not. They are boxes with lightning inside. You, the programmer, have to put intelligence in the box, and you do that with simple step-by-step procedures. Once you've completed processes for a bunch of simple steps, you can then chain your simple steps together into more complex solutions to handle more complex problems.
3) Yeah, I can't help much here. In general, software developers are in demand right now, but I can't say anything about a particular region.
Thank you, Jonathan!
martell