8 answers
Asked Viewed 227 times Translate

What kind of aspects of Software development do you have trouble over coming


+25 Karma if successful
From: You
To: Friend
Subject: Career question for you
8
100% of 8 Pros

8 answers


Updated Translate

Brent’s Answer

In addition to the continual learning aspect that other answers address, there's something else that's quite challenging about software development. The way that we intuitively organize ourselves for our work can lead to really poor outcomes in software projects. We tend to want to build the whole solution from start to finish, and then release it. It makes a big splash that way, and we can feel very proud. But, that doesn't really happen very often.

Usually, if you try that big-bang approach, when you get to shipping you realize that you haven't shipped something that your users really want! Instead, we're better off thinking about how to slice our work into tiny little pieces that we can deliver incrementally. At each step, you can get feedback from real users, and figure out the best direction to go next. After doing that for a bit, you'll build up an amazing solution that people will really love!

It's easy to describe this different work flow, but in practice, it's very hard to do simply because it means a lot of learning that you're wrong, and changing direction. If you want to work in software, you'll want to develop a feedback/response muscle to get used to hearing about what's working, what's not, and thinking about how to improve.


0
Updated Translate

Jerel’s Answer

Because there are so many topics available to learn, it can be intimidating at times to feel like you don't know enough. This can be especially difficult for those newer to software to feel like they aren't adequate. It's important to remember that everyone has been in the same position and have had to climb the mountain of learning. Once you climb that mountain, it can be one of the most rewarding experiences. As a suggestion, find someone who is willing to mentor you and help you learn how to learn.


0
Updated Translate

Grady’s Answer

In my experience, the aspect of software development that I have trouble overcoming is the social and collaboration aspect. I am introverted when talking to others. When I learned software engineering in college, I thought that working with software would be individual-based and that social interaction wouldn't be important, but as I became employed, I learned how important teamwork and collaboration is with software when being with a team of developers.


0
Updated Translate

Neethu’s Answer

Hi Zacariah- Software development doesn't mean that you just put your skills to work. It involves learning, growing and involving yourself. You need not be an expert in what you do, but having the flexible mindset to learn more will help you a lot. I was initially struggling with all these factors but now I have overcome the fear of having inadequate skillset by keeping myself open for learning more and new. Don't hesitate to ask your teammate for the opportunities that you have at your organization.

And most importantly don't forget to love and enjoy what you do.



0
Updated Translate

Casey’s Answer

Great question! It's always good to look at what may be a turn-off about a job in addition to the things that make it great. For me, the aspect that's been hard to overcome is dealing with some of the more tedious parts of the job. Often you'll need to do repetitive, tedious tasks over and over that can be a drain and take you away from doing the more interesting parts of your job. In order to combat this, you'll want to spend time thinking about automation. Nuilding tools that will do that work for you or embracing existing tools like Terraform, ansible, and many others can make the job much more enjoyable.

Casey recommends the following next steps:

Look into automation tools and tactics

0
Updated Translate

Jaya Kumar’s Answer

Actually there are none. An Engineer who is into development has to understand the coding lanuage, and how the code interacts with memory, I/O, Network and the Kernel. He should feel the way how the written code executes. And thats it. With experience everything will fall in place. As a developer, you are the most previleged guy in the Industry as you the person who are in total control how the software written by you works.

0
Updated Translate

Vijay’s Answer

continual Learning and Adopting to newer methodologies and technologies


As Vijay alluded to, the technologies are constantly changing. You would be wise to not become too settled with just one or two languages, rather become strong in them and then experiment with others which are beginning to take root in the market. A great way to do that is to leverage your existing company's training programs if you are already working. If not, YouTube is filled with instructional videos on all the emerging technologies. This will help make your work more interesting as well as help you become more marketable. Pete Williams

Let me pile on with "always learning new things." But, there's a good side to this: it's never boring! Technology changes, of course, and that's what everyone tells you to expect. Moore's Law and all that. Even if the technology stops evolving, you still need to learn new things all the time just because software is often an applied science: applied to Other People's Problems. Due to changing clients, I've had to learn deep parts of completely new fields: scheduling, accounting, great circle navigation and distributed computing theory. When I change employers I know I'm going to be a novice for a little while. Get comfortable with that feeling. Ask questions constantly. It took far too long for me to realize I wasn't supposed to know everything. Eric Newton

0
Updated Translate

Douglas’s Answer

o I think that quite often it’s easy to lose focus on what the end goal of the piece of code is supposed to accomplish. You need to think about how to best achieve that goal. Think about what works best to do this rather than think that you need to use the new technology or framework because you think it’s cool.

One other thing is to do things incrementally rather than trying to solve the problem in one fell swoop. Don’t be frustrated by code failures but rather use it as a learning experience to see why it failed.



0