Ngày hôm qua, tôi có viết 1 status về việc những lập trình viên (LTV) cần phải nhanh hơn nữa. Thật là khó để diễn tả hết lý do trong 1 status ngắn, nên post này tôi hy vọng sẽ nói được nhiều hơn 1 chút.

Thế giới ngày càng khắc nghiệt…

20 năm, 10 năm trước, chuẩn mực của một LTV là gì? Dù là béo phì (LTV Mỹ) hay gầy còm (LTV Việt) thì cũng đều căng thẳng, đầu tóc rối bời, những cặp kính cận lớn và… xa lánh cộng đồng; họ đặt mình vào những căn phòng với thuốc lá, bia, chất kích thích và chỉ giao tiếp với nhau hoặc với máy tính. Chẳng khó để nhận ra một LTV trong đám đông.

Ngày nay, thật khó để nhận ra một LTV trong đám đông. Tôi xin lỗi, song dấu hiệu duy nhất để tôi nhận ra những đồng nghiệp của mình là họ thường mang theo laptop. Vậy thôi. Những LTV ngày nay, họ quá giống một người bình thường với áo thun, quần jeans, đầu vuốt keo, đôi khi cùng khuyên tai hay quần tụt.

Công bằng mà nói, những LTV ngày nay đang có cuộc sống xã hội phức tạp hơn. 20 năm trước, LTV là những người đi tiên phong trong ngành CNTT với chỉ số IQ bắt buộc phải nằm trong top 10% nhân loại, họ luôn phải giải quyết những bài toán khó đòi hỏi nền tảng khoa học tốt; và họ tạo cho mình 1 đặc quyền: tách ra khỏi đời sống xã hội. Giờ đây, như xu thế của mọi ngành công nghiệp phát triển khác, việc lập trình trở nên đại chúng hơn, và LTV dần mất chất hơn. Họ bị kéo trở lại đời sống xã hội bình thường.

Và góc nhìn của LTV cũng buộc phải thay đổi. Cảm giác của LTV cũng buộc phải thay đổi. 20 năm trước, LTV vui mừng vì viết ra 3 dòng code giúp tiết kiệm được 1KB bộ nhớ sau 1 tuần trăn trở. Giờ đây, LTV vui mừng vì tạo ra sản phẩm giúp ích tới hàng ngàn người dùng. Hệ quy chiếu thay đổi, và thước đo cũng đã thay đổi. LTV thay vì đặt mình trong một không gian riêng, chiêm ngưỡng vẻ đẹp của những đoạn code về mặt khoa học thuần tuý; giờ họ buộc phải gắn mình với đời sống kinh doanh phức tạp hơn: Tiết kiệm 1KB bộ nhớ chẳng có ý nghĩa gì nếu nó không mang lại giá trị cho người dùng. 20 năm trước, những LTV được coi là tệ hại nếu không biết cách tiết kiệm thêm 10KB bộ nhớ. Ngày nay, những LTV được coi là thiếu đạo đức nếu viết ra những dòng code tuy tối ưu nhưng khiến đồng nghiệp khó hiểu. Tất nhiên, ở đâu đó trên thế giới, hệ quy chiếu truyền thống vẫn tồn tại, nhưng nó đang ít dần đi.

Và rồi những LTV truyền thống cảm thấy thất vọng, họ thấy thật nực cười khi phải quan tâm tới những giá trị mang lại cho khách hàng, bực bội khi phải quan tâm tới lợi nhuận của doanh nghiệp. Không, tôi muốn làm thế này, vì nó chạy rất nhanh, vì nó là thử thách, vì tôi muốn giải quyết bài toán này... Họ bị stress khi bị lôi trở lại đời sống xã hội phức tạp, nơi những giá trị kinh doanh là thứ họ chưa bao giờ muốn biết. Tôi chỉ muốn lập trình thôi, trời ơi. – một LTV gào lên và ngay lập tức ông chủ của anh ta sẽ đáp lại: Anh bạn à, một bức ảnh đẹp phải được đo bằng view và like chứ không phải vì nó tuân theo tỉ lệ vàng. Thế đấy.

Nhưng thế giới cũng đang đẹp hơn…

Những LTV chân chính có cảm giác rằng LTV không còn là một nghề cao quý và đáng trân trọng khi mà công việc lập trình được bình dân hoá đến mức #kids_can_code và luôn bị cuốn theo giá trị kinh doanh của doanh nghiệp. Song không thể phủ nhận rằng, cuộc sống của họ đang tốt dần lên chính nhờ những điều đó. Họ biết thêm nhiều kiến thức, kỹ năng mới, hoà nhập hơn đồng nghiệp và xã hội. Họ có thời gian để tập gym, quan tâm tới thời trang, những show ca nhạc… thay vì chỉ vùi đầu trong những đoạn code và chất kích thích.

Nhưng không có nghĩa là những LTV chân chính muốn mất đi không gian riêng. Họ vẫn muốn và vẫn cần có những không gian để không quan tâm tới giá trị kinh doanh, rời xa những ồn ào hiện tại và quay trở lại niềm vui chỉ với những dòng code. Đấy là lý do hàng loạt những website như topcoder, projecteuler, hackerrank… ra đời cùng hoạt động Code Retreat, Code Kata… Và doanh nghiệp cũng ngày càng chú trọng đến những hoạt động như Hackathon nơi họ cố gắng tạo ra một không gian để nhân viên của mình được làm  những LTV chân chính dù chỉ 1 vài lần trong năm.

Cũng giống như mọi ngành nghề khác, nhiều LTV không muốn nghề nghiệp của mình bị bình dân hoá; nhưng số nhiều và toàn xã hội lại hưởng lợi khi công việc này trở thành đại chúng với những con người cân bằng giữa công việc và đời sống xã hội. Nhưng cuộc chơi giờ là vậy, những LTV, hãy sống cân bằng, biết cách giao tiếp với đồng nghiệp, quan tâm tới những chỉ số kinh doanh và giá trị mang lại cho khách hàng. Nhưng đừng quên rằng, vẫn còn đó những nơi cho chúng ta không gian để chỉ quan tâm tới kỹ thuật, chỉ sống như một LTV chân chính. Hãy tìm lấy không gian để sống như một LTV chân chính nếu bạn thực sự là một LTV chân chính 🙂

1,273 total views, 1 views today

Follow the topic The most important job is recruiting, I want to share my view on the level of developer. It may be not meet your idea, but to know the differences can give you a deep level you want to go on.

There are at least 4 levels as follow i think:

Coders. They can figure out it, your idea or detail specification with flow. It’ll work, easy like drink a beer, but it won’t be pretty or usable in large scale environment.

Hackers. Don’t mix it with the black hat/white hat hackers. In this case, they are the folks with skillful, with detailed understanding of (some) area deeply, or they can hack into the core of framework, can do some crazy things with tricks.

Programmers. Ok, they write code with understand of algorithms, workflow. They can work alone and well, they can do some incredible things.

Developers. Are the best of all, can use lots of different systems and languages and get them to communicate with each other. They have deep and broad knowledge, from hardware to software, they are true and broad professionals, they can work with people, transfer knowledge and communicate well.

I’ve more than 10 years working experience, have good connection, know a lot of people who working in IT related field in Vietnam … but i know only some true developer. I’m pretty sure that “Your Education” won’t get you hired, especially in A level candidate, it depends on your experience, your skill set and what you can bring to their business, what they’ll receive if hire you. To be honest, if you are closer to one of above level already, you can get an idea of which direction to head and do the best of you.

And now, let me ask some questions:

1. What is the differences between Game Developer and Game Programmer ? Why the game companies always want hire game developer instead of game programmer ?

Game development involves managing all of the different jobs that need to be done, it’s not only coding, it needs skill and tools to build up a game, and it’s not easy. They need the real developer, who can make system run, who can lead the game programmer to code.

2. What is fullstack Developer ? Why company still want to hire .NET Web Developer ?

For me, fullstack developers who are familiar with the entire stack (from hard ware to software, from environment to business logic) … and they know how to make thing easier for those around them. They don’t care about languages, platforms or environment.

I read many job posting in Internet, it’s too funny that some companies want to hire .NET Web Developer, Java/PHP Web Developer. If you want to hire developer, don’t care about the language, just simple like “1 back-end developer, 1 front-end developer or mobile developer. Expect on their skill on back-end or front-end, don’t expect on their skill on programming language. If you just want people who can work with .NET, hire a coder / hacker, they can do almost your idea.

And again, what’s the difference ??? 🙂

159 total views, no views today

In the conferences and meetup, when I ask people “What are you doing? (in your company)”, I usually get these answer “I am a project manager”, “I am a team leader”, “I am a CTO”. OMG, too many PMs, CTOs here, where are our developers? These conferences don’t just open for the management positions only.

Then I found that some of them just tell me their titles, not their real jobs. It seems similar to the case of my friend, Bob, a very talent and skilled developer, became a project manager (PM) and then CTO after graduation and joining his company in 4 months. He is of course right to tell me his title but does he know what jobs need to be done by a PM or CTO? Why should a small outsourcing company, that does every project it could bid, need a CTO?

Let’s see the definition a common title (by Wikipedia):

Software project management is the art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled.

And look back to Bob’s daily work. How many time share of his daily coding in his project? 50%, 60%, 70% or 80%?

80%, sure, Bob is not a PM, he is a developer in PM title. Even though he choose 50%, he is still a developer. It seems a common case in a small company where the number of PM equals to a large company.

Why?

There are 2 reasons I see.

Small project. A small company usually does a small project with team size is about 3 to 6 members (sometimes 1 or 2) compares to large team in a bigger company.

Benefit. Company gives Bob a title (and may pay a little extra money for this title) for getting a very big benefit from him. Life is not fair. Bob feels more important as being a PM of project? Sure. Bob is mainly responsible to the success of project? Right. And what would Bob do? Double his work hours day by day. If you are a best technical and skilled guy but work in PM title, it would be a nightmare. I guess Bob hope that he is not good at technical. But if he is, it’s so difficult for Bob in getting the chance to have PM title. It sounds funny.

The pitfalls

Renaming jobs by a title this way may bring some issues to the both employee and company sides.

Bob thinks that he has enough knowledge and skills of a PM and doesn’t want to be a developer so far although he is still a good developer and bad PM in a lot of successful projects. Some months ago, I had an interview with a good candidate who truly believed that TL or PM is a position suits him and didn’t want to be a developer any more because he have worked as PM for 3 years and completed some projects well. But I asked him “How many teamwork issue did you find in the most recent project?”, “Hmm, 1 or 2”, he said. “You seems not a good PM. No matter with your teamwork issue, 1, 2 or 100, how you answer me with “hmm” and “or” shows that you didn’t monitor and control it well”. Yes, he didn’t monitor project as he should do because he spent too much time focusing on development. He was just assigned to PM position to fulfil project roles and couldn’t get enough time to do the main tasks. But it’s so hard for me to convince him joining us in a developer title although every developers manage works and the technical stuffs themselves here. The title illusion has killed a developer’s career softly.

It’s unreasonable to promote the best developer to PM position where he can show off the bad management skill but why is it the common way we are doing? It seems an easiest way to keep him here and reach out his coding competence – but it just works in a short term. If we still want, please keep him out of coding time (or at lest, have a plan to decrease it), he need to have overall view of what is going on in this project while the team is working.

The project cannot scale that way. Sure, developer is just a developer even though he is in PM title for a long time.

It’s exact my case in some years ago when I worked for a small company in several small projects and was proud of how they introduced me, PM or “Web product director” sometimes, until I spent a whole day to look back what jobs I had done, how much time shares I had spent for in this project. Then I quit thinking that way. We cannot change our jobs by just renaming them. And I see it’s the common case of the young guys especially the graduated students who always have big ambition and want to quickly have big steps in their career path. But they don’t have enough knowledge to identify it’s just a trap by the title outside.

But why shouldn’t Bob answer me “I am a developer”? I don’t know, he may feel better by “I am a PM”. But I believe in some next years, Bob may say “I am a developer, a guru”.

Let the daily main jobs set your title.

88 total views, no views today