Skip to main content

5 Things That Every New Developer Needs to Know

Even though I have only been developing
software "professionally" for around two years,
there is a ton of information that I can pass on to
fledgling developers and hackers. Learning how
to program is just the beginning of learning
software development and actually becoming awesome at it.

If you are taking computer science or MIS/CIS
courses at a university, I can imagine that you
are learning technical aspects, system design,
programming languages, computer logic, and
maybe even a little user interaction design.

The problem is that with any technical field, there
is almost too much to learn. So, here are the top 5
things that every new developer needs to know
to prepare themselves for the "real world" of
software development.

You can't please everyone all the time. So don't.
When it comes to designing and implementing
new software and systems, you will inevitably
have some system users. Also, you tend to have
more than one type of user for a system, like an
administrator, data-entry user, and reports users.
With all of that user interaction you are going to hear a lot of "I need this…" and "yeah, but…"
when it comes to different features and
implementations.

The problem is that you can never please all of
these users. Ever. So, learn how not to people
please and learn to say no more than you say yes to new features and ideas.

Don't be a butthole, but don't be mister nice buy
either. Try to implement only a handful of
features at a time that will give your users the
most bang for their buck. Then iterate.

Make learning a top priority
The reason I got into software development was
because I loved learning new things and solving
problems. In fact, that's all I do all day, every day.
So, when it comes to learning new languages,
operating system technologies, platforms, etc.
you have to always be on top of your game. You can get a really great series of tutorials for learning about some awesome technologies like Ruby programming, iOS game development, designing responsive web sites, and even
Photoshop over at Lifehack Deals right now.

These types of "packages" are an easy and
effective way to learn new things quickly. I
remember when I was just getting into Ruby on
Rails development and I purchased the infamous
Ruby on Rails Tutorial package. I created a sample
application in about a week and had a great base knowledge of the Rails framework to build off of.

You will never learn it all, so take advantage of
learning as much as you can as fast as possible.

Know your limits
Another thing that you have to learn early on is
what you can and cannot do when it comes to
development and different technologies. Just
because you could solve problems in college
classes does not mean that you can do anything
when it comes to the "real world".

When I was first working at an insurance
company as an intern I was amazed at just how
many moving parts there were to an old,
complicated system. I remember lead developers
explaining things to me that completely went
over my head. I felt like I had no clue what I was doing. That's because I really didn't.

It was a wakeup call to say the least. I learned
very quickly that I can solve every problem,
every time all by myself. You have to understand
that your knowledge has limits. When you reach
the edge of your limits, it's time to reach out to
others that know more than you do.

Get users involved
Remember me talking about how users can be a
pain? Well, they can be your best ally if you put
them in their place! Seriously though, users are
the ones that are going to be using the thing that
you are creating so it's important to know what
their job is, what annoys them, and how to delight them.

If you understand your user's basic needs, then
you have made a great step forward in creating
a usable and wanted system for them.

Try to ask users for their input about features
and how something should work. Remember not
to promise anything though; just get an
understanding of what makes the person that
uses your system tick.

Don't just lock yourself in a room and code.
Learn business stuff.
There was a guy in school that I knew that was
a crazy hacker type. You could give him any
problem and he would have it solved in C using
vim in no time. That was cool and everything, but
he was a total nerd, couldn't really hold a
conversation, hated everything that was "mainstream", and didn't care about "business"
at all.

But, he was good at programming.

Although coding is a super important skill to a
new developer, you have to understand business
processes, business politics (I hate them), why a
system needs to be the way it is, and also be able
to communicate technical ideas to users and
sponsors of your project easily.

So, yes, learning to program is important (and
you can do that easily with great tutorials like the Learn To Code Bootcamp Bundle at Lifehack Deals ), but there is way more to being an awesome
software developer.

Source: www.lifehack.org/articles/technology/5-things-that-every-new-developer-needs-to-know.html

Comments

Popular posts from this blog

Run Android OS on your iPhone

Ever wanted to try out an Android OS on your iPhone 2G and 3G. Here are 10 steps to make it happen. 1. Make sure your iPhone is jailbroken. 2. Open Cydia on your device, then click on 'Manage' followed by 'Sources'. 3. Click 'Edit', then 'Add'. 4. Enter " http://repo.neonkoala.co.uk " and click 'Add Source'. 5. Search for 'Bootlace' and install it. 6. Goto the iPhone's home screen and launch 'Bootlace'. 7. Download and install OpeniBoot. 8. Then install(This is the Android OS). 9. Select QucikBoot tab and click on the Android logo. 10. Your iPhone should reboot into the Android OS. NOTE - The OS works in a dual boot config i.e. You can choose to run either the iOS or the Android OS. - Only works on iPhone 2G and 3G - There may be a decrease in your phone's battery life - Bugs might be encountered

Experience of a Data Bundle Subscriber

A few of the Service Providers I have been fortunate enough to use their internet or data plan includes MTN, Airtel and Etisalat. From my experience MTN has been quite unreliable, the few times I subscribed for their data plan my data usage ran faster than my browsing speed. Airtel on the other hand had been manageable up until a couple of days ago my remaining data allowance mysteriously disappeared from my phone, before that I had already noticed a discrepancy between the data balance I got using *123*10# and the one returned using *141*712*0#. The only Communication Service Provider that hasn't disappointed me yet data-wise is Etisalat. They have the most pocket friendly data plan and their data plan readings has been quite accurate to the best of my knowledge. Which of 'em has been reliable to you?

GPRS, EDGE, 3G, HSDPA, HSPA+, 4G LTE

While conversing with a friend I was asked the differences between GPRS, EDGE and 3G, decided to share my little knowledge about the topic in case you might be confused about it too. Before advancing, it should be known that 1G, 2G, 3G, 4G, 5G etc refers to the different generations of wireless communication technology characterized by having a defined range of speed. GPRS(General Packet Radio Service) GPRS is a packet-based* wireless communication service. It is a 2G technology network that support a download speed of up to 114Kbps. Limitation of GPRS is that GPRS data cannot be sent while a voice call is in progress. EDGE(Enhanced Data GSM Evolution) GPRS and EDGE are both 2G technology but EDGE is significantly faster with a dowmload speed of up to 384Kbps. EDGE is sometimes called a 2.5G network as it also has some characteristics of a 3G network but it doesn't satisfy the specification. 3G Introduction of 3G network made video calling and seamless streaming o...