Successful Developer
A successful software developer is a
person who is able to write each line of code with passion. And passion cannot
be obtained by any software engineering degree, it must come from you.
10 Steps to Become an Outstanding Java
Developer
1. Have strong foundation and
understanding on OO Principles
2. Master
the core APIs
3. Keep coding
4. Subscribe to forums
5. Follow blogs and respond
6. Read open source frameworks
source code
7. Know the technology trends
8. Keep commonly used code
snippets/utilities handy
9. Know different development
methodologies
10. Document/blog your thoughts on
technology
Skills I should learn:
1. Problem Solving
2. Requirements gathering
3. Basic project management
4. Excellent Interpersonal skills
5. able to work from design phase to implementation phase
6. Design and Development of the Web
Services
7. Working knowledge of Software Development Methodologies
and UML
8. Sun certified Web Component Developer
9. Sun certified Business component Developer
10. Scrum framework for project management
11. Excellent English Communication Skills
1.
Being A Developer:
1. Be passionate about the being a
software developer: you should enjoy sitting in front of PC whole day and enjoy
lines of code you write.
2. Don’t try to learn all the programming
languages: what you need to know is the concepts.
3. When you face an error : always
tell to yourself , “I’m NOT ALONE, someone in this world should have faced the
same error before “. And Google exact error message. Chances are 99% you will
find the answer.
4. Get involved in forums: Ask and
answer the questions
5. When you see an application (Web
application or windows), tell yourself. If this is an application. Then it’s
technically possible for me to build a similar one.
6. When you see an application (Web
application or windows), try to model it in your mind:
Always ask yourself, can you build a
similar application yourself. if not try to find the place where you think you
might get stuck. And try to Google and find how to do it.
7. If you get stuck in code logic
for more than two hours; STOP your work; go out to have a tea or coffee, before
trying it again.
8. Be Confident: Help others and ask
from others. Different people will have different aspects to solve an issue.
9. Never be ashamed, when you find
the bug as a single line of code
Usually most of the bugs can be
corrected in a single line of code. What matters is , how hard you tried in
different aspects to solve the issue.
2. Learn path for a language:
Step 1: Java Language
Step 2: Java platform API’s
Step 3: JEE platform
Step 4: Application Design
Step 5: Distributed System
Architecture
Step 6: Development Process (Project
management, Management etc)
3.
4 Steps that will help you to become expert:
1. Learn it
2. Do it
3. Discuss it
4. Teach it
According to the book “Outliers” by
Malcom Glad Well , it takes 10,000 hours on average to become a true expert.[10
hours per day for 3 years]
4.
Always have the below questions in Mind:
1. A good way to find out what you
should learn is to look at job ads.
2 .What tools and techniques are
they requiring most often
3. Read software magazines online
4. What technologies are they
talking most about?
5. Read forums
6. What technologies are people
asking most questions about?
7. What technologies are people
buzzing most about?
8. What will become hot tomorrow?
5. Knowing about Self
1. Self Confidence: competence[possessing the needed
skills]+self-assurance[having the ability to achieve it]
2. Self –Esteem: Appreciate yourself
as a unique individual with your own set of skills , talents, and abilities.
Maximum level of self-love.
3. Self- Efficacy: judgements about our own capabilities and what we believe we are or are not able to do with those capabilities.
3. Self- Efficacy: judgements about our own capabilities and what we believe we are or are not able to do with those capabilities.
Sources of building self-efficacy:
i. Mastery Experiences:
One we see ourselves succeed, we are more likely to believe that we can do it again.
One we see ourselves succeed, we are more likely to believe that we can do it again.
ii. Social Models: we believe we can
do something more readily if we see someone like us achieving it first.
ii. Social Persuasion: we believe we
can do something more readily if we have other’s tell us that they believe we
can do it.
iv. Emotional States:
we will judge ourselves based on our emotional reaction to a situation –we may see ourselves as vulnerable or weak if we are too emotional or stressed.
we will judge ourselves based on our emotional reaction to a situation –we may see ourselves as vulnerable or weak if we are too emotional or stressed.
How
Self-Efficacy affects Functioning:
There are four major psychological
processes that are important when discussing the fact that how a person
perceives their self-efficacy can have an impact on their ability to function,
perform and achieve.
The 4 process are
i.
cognitive
process
ii.
Motivational process
iii.
Affective
process
iv.
Selection
process
Cognitive Process: We
rehearse what will happen in a situation by thinking about it. We then compare
the reality of what happens to how well we predicted it.
Motivational
Process:
Casual Attributions: those with high self-efficacy
understand that their failures are a
result of low effort.
Out come expectancies: if we have high-self
efficacy we know that we know that we simply have to give right input to get
the desired outcome, and will be motivated by that understanding.
Self-influence by goal setting: If
we see the goal as simply a function of the right activity combination ,we will
set it high when we have high self-efficacy because we will believe we can
attain the goal. if we don’t have high self-efficacy then we will set low goals
for ourselves.
Effective Process: This element
relates to how we perceive our own coping abilities. If we believe we have good
coping skills, we actually cope with difficult situations better than if we
lack self-efficacy in this area.
Selection Process: You want employees with a high level
of self-efficacy because it is more likely that they will have actively chosen
their current profession and so will be more enthusiastic about it.
Theories
for Motivation:
Factors Effecting Job Attitudes
Leading to dissatisfaction
|
Leading to satisfaction[priority
highest to Lowest]
|
Company policy
|
Achievement
|
Supervision
|
Recognition
|
Relationship with boss
|
Work itself
|
Work conditions
|
Responsibility
|
Salary
|
Advancement
|
Relationship with peers
|
Growth
|
· There is one important distinction
to notice when it comes to self-motivation and self-confidence. The factors
that tend to bring us the most satisfaction at work, and so we assume , the
most motivation , are the ones that we have some control over – and that are
most related to our job performance. If we are focusing on our performance , we
will achieve our goals and receive recognition . if we do something we
enjoy , that alone can provide satisfaction. We also can see that taking
on more responsibility , advancing and growth are all ways to be satisfied at
work. We can volunteer for additional responsibility , look for ways to grow
our skills , and discover what would be necessary in terms of our performance
to take advantage of opportunities for advancement. We might not be able to
control company policy or the other factors that can lead to dissatisfaction,
but we can certainly control our own performance.
· Motivation is directly linked to the
expected outcome of any effort that is expended. Three variables that create
the link
i. Expectancy
ii. Instrumentality
iii. Valence
i. Expectancy : means you believe
that the effort you put in can affect the performance that you deliver.
This factor effected by:
a. having the resources you need to
do the job(time, money ,hardware and software)
b. havin the skills and knowledge to
do the job.
c. having the support you need to
get the job done(manager support, approval, and information)
ii. Instrumentality : refers to the belief that your performance will effect the outcome. You believe there is something in it if you perform well this believe will be effected by:
ii. Instrumentality : refers to the belief that your performance will effect the outcome. You believe there is something in it if you perform well this believe will be effected by:
· Having a clear understanding of what
has to be achieved in order to receive a reward – what the ‘rules’ are for you
to get rewarded for your effort.
· Trusting the people who will decide
whether or not you receive a reward for a corresponding level of outcome.
· Transparency in the process that
results in who gets what outcome and corresponding reward.
iii. Valance : is the importance that a person places on the reward or expected outcome.
iii. Valance : is the importance that a person places on the reward or expected outcome.
So in order for a person to be
motivated by what they believe the outcome will be (the reward) , all of the
following must be true
· They must believe that their increased
effort will increase their performance
· They must believe their increased
performance will increase their reward
· They must value the reward being
offered.
As individuals, we can apply this theory of motivation to any area of our lives where we need to be motivated by creating our own rewards for performance and goal achievement.
As individuals, we can apply this theory of motivation to any area of our lives where we need to be motivated by creating our own rewards for performance and goal achievement.
Hierarchy of Needs:
People have 5 levels of needs that
they seek to meet. The more basic the need, the more motivated a person will be
to fulfill it.
Level 1: psychological Needs: bottom or most important. These are the things which our body needs in order to keep functioning.
Level 1: psychological Needs: bottom or most important. These are the things which our body needs in order to keep functioning.
Air, food, clothing, water, Shelter
Level 2: Safety Needs:
Once the physical needs are met
individual focus on making sure that they are safe.
job security, projection from unilateral authority, Financial savings, Insurance policies, Reasonable accommodations for disabled
Level 3: belonging Needs
revolve around social interactions and the need to belong. These needs will be persuade once the lower needs are met. People will full fill this need by persuing individual relationships and by joining larger social organizations. These needs are emotionally based and full fill the need to be loved by, cared, for, and accepted by others.
if these are not met individuals become more at risk for depression, social awkwardness or anxiety or lonliness. In some cases of extreme peer pressure, individuals may actually sacrifice the lower levels of needs in order to fil in.
job security, projection from unilateral authority, Financial savings, Insurance policies, Reasonable accommodations for disabled
Level 3: belonging Needs
revolve around social interactions and the need to belong. These needs will be persuade once the lower needs are met. People will full fill this need by persuing individual relationships and by joining larger social organizations. These needs are emotionally based and full fill the need to be loved by, cared, for, and accepted by others.
if these are not met individuals become more at risk for depression, social awkwardness or anxiety or lonliness. In some cases of extreme peer pressure, individuals may actually sacrifice the lower levels of needs in order to fil in.
People may full fill this level of
needs by different relationships, such as
· Family
· Friends
· Intimate Relationships
· Clubs or social organizations
· Sports teams
· Office culture
· Religious groups
· Professional organizations
Level 4: Ego status Needs : are belonging needs , but with one major difference. Whereas belonging needs refer to being a part of a group , ego-status needs refer more to how individual believes she is seen by those groups. Our needs at this level revolve around us reinforcing our self-image and , by turn, the image others have of us.People strive to fill this need by such means as :
· Status and achievement at work
· The accumulation at work
· The accumulation of status symbol(car,homes
etc)
· Recognition from others
· Taking opportunities to lead others.
· Associate people who have esteem of
others
· Personal achievements in areas
such as education, skills, and hobbies
· Pride in the achievements of their
family members
those with healthy self-esteem are those whose esteem is based on their own accomplishments and internal feelings.
those with healthy self-esteem are those whose esteem is based on their own accomplishments and internal feelings.
The more self esteem based on
external things , the more fragile it is.
Level 5: Self Actualization: need to become more and more of oneself, and to become more and more of what we are capable of becoming.
Level 5: Self Actualization: need to become more and more of oneself, and to become more and more of what we are capable of becoming.
It is important to realize that this
level of need is only achievable when the other four have been met.one must be
physically nourished, not have to focus on safety , feel loved and a sense of
belonging, and have a good level of self-esteem before he or she would seek
this level of desire.
Two ways of understanding
self-actualization
i. To cease caring about the good
opinion of others
ii. To do things purely because you
enjoy them- because they are the reason you are here on earth, not because of
money, fame , or any other reason
If you no longer care about the other people think (generally) and you are doing things that you love, you are affirming your individuality and accepting yourself –faults and all
If you no longer care about the other people think (generally) and you are doing things that you love, you are affirming your individuality and accepting yourself –faults and all
Methods for Improving Self Confidence:
10 tips for self-confidence:
i.Dress up:when you feel that you
look your best, you are more likely to carry yourself with more confidence
ii. Step up the Pace: watch people
walking by the next time you are at work. What does their walk communicate
about them?walk about 25% faster than you normally would , with your head up and
your energy flowing.you will start to feel more important and more confident
iii.Watch your posture:
Practice good posture to feel more
alert, more confident, and more powerful.
iv. personal advertisement: A
personal advertisement is a one minute or less speech that you write about
yourself and all your strengths and abilities so you can refer to it whenever
you need a confidence boos.
vi.practice gratitude:write down
atleast five things every day that you are grateful for and you will be
training yourself to stay focused on the positive in your life and about
yourself.
vii.Pay people complements:focus on
the positives in others by paying them complements . By looking the best in
other people, you will bring out the best in yourself.
viii. Sit up Front :
ix. Speak up: feel free to speak in
group discussions and feel confident in sharing your ideas in front of other
pople.in fact, in time, you may even begin to be seen as a leader by your
peers and supervisors if you continue sharing and contributing to group
discussions.
x.Excersise:
excellent way of feel better about
your abilities.
xi.Focus on contributing : focusing
on what you contribute will help to boost your self-confidence.
When you are collecting a paycheck or getting paid to do
it. That is the definition of being a professional in any field versus a
talented amateur or hobbyist.
As to the skills to master it depends on the type of Java work you want to specialize in. Everyone is a specialist nowadays. Desktop applications aren't exactly an in-demand skill in Java today except in niche areas. Most Java outside of mobile applications is enterprise/web/web services types work. So rather than a desktop application, you'd be writing middleware or back-end code for an intranet web application to communicate with. The web application itself may write using Java technologies or another stack entirely.
For enterprise work, I consider a working understanding of databases via JDBC, database frameworks, web services along with the associated XML, XML Schema, WSDL, JAXB, SOAP and REST technologies, a working understanding of Java web development at the core with Servlets/JSP and one or more web frameworks like Spring Web, JSF2, etc. Bonus skills revolve around specialty needs but can include caching, NoSQL, cryptographic extensions, understanding of applied web and application security principles, etc.
As to the skills to master it depends on the type of Java work you want to specialize in. Everyone is a specialist nowadays. Desktop applications aren't exactly an in-demand skill in Java today except in niche areas. Most Java outside of mobile applications is enterprise/web/web services types work. So rather than a desktop application, you'd be writing middleware or back-end code for an intranet web application to communicate with. The web application itself may write using Java technologies or another stack entirely.
For enterprise work, I consider a working understanding of databases via JDBC, database frameworks, web services along with the associated XML, XML Schema, WSDL, JAXB, SOAP and REST technologies, a working understanding of Java web development at the core with Servlets/JSP and one or more web frameworks like Spring Web, JSF2, etc. Bonus skills revolve around specialty needs but can include caching, NoSQL, cryptographic extensions, understanding of applied web and application security principles, etc.
Become Great Programmer:
1. You MUST be passionate:
If you are not passionate about
learning, thinking logically, and solving problems, then you simply can’t
become a great programmer.
2. Persistency : KEEP PUSHING
There are million things that can
stop you at good level.But to keep going on you should keep pushing. Never give
up , always keep reading new article, play around with new technologies, try
out all cool stuff that you can find, and enhance your internal desire to
discover and improve.
3. Don’t just read/watch , COME DO IT!
3.1 embrace open source:
open a github.com account. Then start forking cool projects that you can think you'll
like and keep improving them. Submit a pull request, or simply ask the
author if there's any bug/feature around that you can help
fixing/implementing. Make your hands dirty. Yes, this is the price
to pay for becoming great.
3.2 Be Brave ! No one is going to laugh at you
4. Trust in Yourself ! Not everything
is already invented.
More than a million times this thought will come to your mind
that all great ideas in the world are already implemented or are being
implemented by someone in a cool place of the world right now. NOT TRUE!
Google wasn't the first search engine. Facebook came where there was many
social networks around. Twitter was nothing but a blogging service with
an if limit on number of characters that you can post.
Dropbox wasn't the first file sharing system. Slack (software)(they went from zero to
$2,800,000,000 value in a year and half!) wasn't the first chat
software.
Yes, You can be the next! Trust in yourself man.
Yes, You can be the next! Trust in yourself man.
Be someone that makes you happy.
No, you don't need a mentor!
You are your own mentor. Just believe in yourself and go learn how to learn fishing.
You are your own mentor. Just believe in yourself and go learn how to learn fishing.
First and foremost, you must read a book
called Code: The Hidden Language of Computer Hardware and
Software By Charles Petzold
Afterwards you should:
· Build an 8-bit computer from scratch
This helps to implement what you know and will make you very
passionate about a machine you have built from scratch. It will be reminiscent
of Woz in the old days...or at least that's how I felt by building it.
How to Design, Program, and Build Your Own Working Computer System by P. Kenian
http://www.amazon.com/design-pro...
How to Design, Program, and Build Your Own Working Computer System by P. Kenian
http://www.amazon.com/design-pro...
· Program an Operating System
Program an OS for your newly built 8-bit wonderfully engineered
machine! You will feel like a boss and your passion will be way way
way up by this time.
How to Design, Program, and Build Your Own Working Computer System by P. Kenian
http://www.amazon.com/design-pro...
How to Design, Program, and Build Your Own Working Computer System by P. Kenian
http://www.amazon.com/design-pro...
· Build your own programming language
Okay. Maybe not an entire language on your own. But you can
build a small dialect of Lisp in C with beginner level coding skills that will
teach you an incredible amount about the C programming language. This
is a seriously fun activity!
www.buildyourownlisp.com
www.buildyourownlisp.com
· Build a Server
I haven't exactly gotten to this step yet, but I am very excited
to build it! I'm not sure what I'm going to learn from this little exercise,
but I am most certainly positive it will just make me much more confident that
I can do anything I set my mind to, especially computer
science related.
http://www.techrepublic.com/blog...
http://www.techrepublic.com/blog...
· Complete the MIT Computer Science degree plan from start to
finish...FOR FREE
Scott H. Young set out one day to complete an MIT CS degree in
less than one year.He ended up completing the degree in about 10 months.
If he can do it in 10 months with focus and discipline, you and I can do it in
one to two years with discipline. The courses are also made free online thanks
to MIT Massive Open Online Courses.
http://ocw.mit.edu/help/rss/
If you are preparing
Software Development Interview At Amazon, Google, Facebook, Twitter, Microsoft,
LinkedIn, or similar companies , would recommend
i.
Read cracking the coding interview
ii.
Read Amazon SDE interview questions:
http://myamazoninterview.blogspot.in/
iv.
cherry-pick videos from
the mycodeschool channel on youtube: https://www.youtube.com/channel/UClEEsT7DkdVO_fkrBw0OTrA
v.
interview at a few other
companies *before* your preferred employer
Comments
Post a Comment