How to strengthen your skills effectively?

 As technical people in IT, we all know we must learn more and more to keep up with the rapid changing IT technologies and increasingly complicated business requirements.

Regrettably many developers learn technologies just for learning, they don’t want to enrich their thoughts, many of them are obsessed with MVC framework, previous struts I, then webwork, nowadays struts2.

On some popular threads of Java forums, we often see arguments on two IOC framework : guice and spring, some radical fans of guice framework attack spring framework as a shit. But before 2007, many of them feel proud of mastering Spring framework, Spring framework not only provided a productivity innovation, also made programmers who master the framework a good living.

This is ridiculous! Researching on new things seems no wrong, but we have narrow time to learn technologies, how to use the valuable time to learn effectively and efficiently? We don’t want to just be a fan of some particular frameworks, actually, many programmers' professional goal is to be an architect.

First of all, we should clarify why we spend time and money to learn technologies hardly? The main reason is many of us saw it as a way to improve their position and treatment, so we should learn technologies which career situation around starved for mostly.

In many software companies, we have enough programmers who only could write some java code, and use some popular frameworks. That is enough!

As a project manager, I always feel frustrated to delegate some complicated tasks to members, for example, once I want  a business analyst to make a prototype to get more feedback quickly from stakeholders, but he can only write documents with office software, that's cost a lot of time in the requirement analysis phase. After a requirement completed, there is a limited time to complete other milestones in lifecycle.

Many architect we called them 'concept architect', who only know how to interpret the conception of some technology jargons, when we want them to mix front-technology and server-side technology to provide a full-stack solution, they deliver nothing after a long time document work.

In fact, few of them would like to extend their perspective on enterprise information system technology deeply, such as rich-client, workflow, BPM, CMS, portal, EAI, SOA, and so, on, Although mastering those technologies can give you a global view on enterprise information requirements.

Meanwhile, many of web application projects were compelled by huge requirements about user-experience enhancements. Bosses of e-biz websites want to strengthen the rich experience of user interaction to improve customer loyalty and retention, they want more front engineers who have a expertise on CSS, JavaScript, Ajax, Domto support their websites. But few engineers satisfied their expectation.

As my suggestion, having a leveraged expertise is a necessity, we need comprehensive skills to complete a challenging web project.

If you think you are good at OOP already, you can extend your perspective and shift your focuses on front technology, like JavaScript, DOM, CSS, html, this is technology is easy to learn, hard to master, but full of fun.

You should also elicit a little time to learn database tech, as your expectation is not only just writing some stupid sql code, at least you should acknowledge a database vendor's details, whether Mysql or Oracle, they could deepen your understanding about Transaction, Concurrence, Cache, performance-optimization, data backup, etc.

Finally, with more projects experienced, you will be a solution-provider, not only a so-called senior developer.

你可能感兴趣的:(How to strengthen your skills effectively?)