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

Highlights of October

Microsoft Releases Windows 8 ------------------------------ The much anticipated Windows 8, a successor of the Windows 7 OS was released into the technology world. Windows 8 features a new Start menu, a new Metro interface and a new File Explorer interface with ribbon, in addition to a host of other features. Apple unveil iPad mini ------------------------------ A smaller and more portable version of the iPad with a 7.85 inch liquid crystal display set to hit the shelfs November 2. Samsung Galaxy Note 2 ----------------------------- A massive 5.5inch display mobile phone termed phablet(not sure whether it's a phone or a tablet) was released into the smartphone market by Samsung.

Introducing Nokia Asha 205

Thinking of buying a phone on a budget that also ensures your social online presence? The Nokia Asha 205 might just be what you really need. This QWERTY keyboard phone's design may not really be all that, but what's one to expect from a phone intentionally made affordable? A great bargain in my opinion as it wouldn't cost more than N1,000 to purchase this dual sim phone armed with features such as a dedicated Facebook button, threaded view sms ~Blackberry feel~, FM recording, in addition to being deeply socially integrated. It comes with a selection of popular social networking apps: Facebook, Twitter, eBuddy messenger, even Whatsapp(single SIM version). Definitely a phone to watch out for from Nokia.

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