Friday, June 12, 2015

[Dev] Is Computer Programming Hard? Not if You Have These 7 Characteristics!

Nearly every aspect of our lives these days revolves around a computer in one way or another. Your ancestors would never believe you if you told them that one day we would have the ability to have a face-to-face conversation with someone thousands of miles away or have a computer in our glasses.
It’s no secret that these machines can do amazing things, but there’s still a human behind the scenes directing them. Computer programmers are the masterminds who write, modify and test the code that ensures applications run smoothly. None of our cutting-edge technology would function properly without lines upon lines of complicated algorithms in the form of programming languages.
With all of this talk about coding, algorithms and programming languages, you’re probably thinking, “Is computer programming hard?”  Unfortunately, the answer isn’t quite black and white. The truth is that not everyone can hack it as a computer programmer. It takes a unique set of characteristics to succeed in this field.
But if you do have what it takes to excel in this profession our experts are confident that you’ll never be short on work! The U.S. Department of Labor agrees there is a bright outlook for computer programmers as well as exciting earning potential, with the average salary listed as more than $76,000 per year.*

Do you have what it takes to be a computer programming pro?

We asked our panel of pros to describe some of the natural characteristics many successful programmers share. This insider info will help you determine if your brain is programmed to be a computer programmer.
Take a look at the seven quirky qualities they shared with us:

1. They love solving puzzles

Those hundreds of Sudokus and word-finds you’ve completed throughout the years may finally pay off! Computer programmers tend to view their work as a giant puzzle, according to Pete Shearer, enterprise architect at Emblem Seven.
“[Programmers] see things around them as a series of puzzles that must be solved,” Shearer says. He explains that this attitude often drives the best programmers to work strange hours because the inspiration of the puzzle’s solution may strike them at any time and they aren’t satisfied until they’ve cracked the code.

2. They’re patient … like REALLY patient

If you’re a person who is easily-agitated, computer programming is probably not your dream job. Patience is crucial because programmers often deal with individuals who have little knowledge of the field, says Zach Pickell, computer programmer at EZsolution.com.
To be a great programmer you must be able to keep your composure when translating your technical knowledge into layman’s terms. Patience also pays off when you’re daily duties consist of writing lines upon lines of code and other mundane tasks.

3. They over-analyze EVERYTHING

"If you were a kid who loved to build, tinker or take things apart, you’re wired for being a programmer”
You’ve been accused of this time and time again by your significant other—now you can finally use your powers for good! Computer programmers tend to break everything down into small steps.
“You can’t accomplish anything as a programmer if you can’t see how every problem is reducible into its component parts,” says Hayley Brooks, head of product development at Learn2Earn.

4. They’re intellectually curious

“If you were a kid who loved to build, tinker or take things apart, you’re wired for being a programmer,” says Yarin Kessler, founder of PDF Buddy.
Kessler says this is because these individuals generally have an innate interest in how things work. Great programmers enjoy pulling things apart and putting them back together better than they were before.

5. They’re lazy … but in a good way

We’re not talking about lying in bed all day in front of the television. But there is a certain degree of laziness involved in being a good computer programmer, according to Brian Geisel, CEO of Geisel Software.
“If you’re lazy enough, you’ll work hard to make sure you never have to do anything twice on a computer,” Geisel says. This is because programmers hate to do things manually that can be automated.

6. They’re somewhat pessimistic

It’s not always bad to be a “glass is half empty” kind of person. When it comes to computer programming, it actually helps to be constantly focusing on the negative, according to Steve Silberberg, software contractor turned adventure junkie.
Silberberg explains that programmers are responsible for anticipating every possible contingency in order to avoid glitches. “A good programmer analytically looks at every possible thing that could go wrong, which comes off as less than optimistic,” he says.

7. They’re ALWAYS learning new things

Our experts all agreed that a thirst for knowledge is essential for success in this career. If you think you’ll be done learning once you’ve earned your programming degree, think again! Formal education will help you build the foundation on which your career will grow, but if you don’t take it upon yourself to continue evolving, you’ll get passed up in a hurry!
“Hardware and software are always changing, so you have to thrive on the thrill of learning new things,” Geisel says.  The best programmers take it upon themselves to become well-versed in a variety of programming languages, while also adapting to technologies, tools and best practices that are constantly in flux.

So ... are you wired to be a programmer?

So is computer programming hard? For the average person, the answer is probably yes. But if you can identify with a handful of the qualities our experts described above, chances are good that you’ll be able to handle it (and even enjoy it!)
Remember that not everyone has what it takes to make it, so taking advantage of your quirky qualities can really pay off!

Source

Thursday, June 11, 2015

[Dev] 5 lời khuyên đơn giản giúp coder làm việc hiệu quả hơn

Jonathan Blow là một developer độc lập và đầy tài năng. Không chỉ tự mình thực hiện các game project với một số lượng rất lớn các code và nội dung, ông còn đang phát triển một ngôn ngữ lập trình mới như một phần phụ thêm cho công việc của mình.

Trong bài viết này, tác giả đã cố gắng tóm gọn lại bài thuyết trình của ông ở đại học UC Berkeley. Trong bài thuyết trình, ông mô tả tính thẩm mỹ trong lập trình của mình và làm thế nào để viết code có hiệu quả.

1. Đừng cố gắng tối ưu code từ lúc đầu

Thường thì các bạn sẽ thực hiện tối ưu hóa code của mình từ rất sớm, nhưng đôi khi chúng cũng làm cho mọi việc trở nên phức tạp hơn khi lúc nào bạn cũng phải nghĩ cách tối ưu cho code của mình. Hãy tập trung viết cho code hoạt động đúng trước, sau đó mới bắt đầu tối ưu những đoạn code.

2. Thực hiện tối ưu hóa với những điều đơn giản nhất

Bạn có thể tối ưu tốc độ thực thi hay tối ưu dung lượng ứng dụng nhưng điều quý giá nhất bạn cần tối ưu chính là thời gian của bạn. Hãy tối ưu hóa cho code của bạn dễ đọc, dễ hiểu và nếu như bạn phải dừng lại và tự hỏi “code này chạy như thế nào nhỉ?” hay “Tại sao mấy dòng code này không chạy?” - thì bạn đang lãng phí thời gian của mình đấy.

3. Những gì bạn học chưa chắc đúng

Một số phương pháp bạn được học tại trường nếu bạn sử dụng thì nên cẩn thận. Đa số những phương pháp đó chỉ áp dụng được trong 1 vài trường hợp nhất định. Không phải tất cả những phương pháp đó đều không đúng nhưng chúng thường được nói hơi quá so với thực tế. Và nếu bạn chấp nhận áp dụng những phương pháp đó, kết quả nhiều khi không được như ý muốn mà lại còn làm cho bạn rối thêm. Vì thế hãy cẩn thận.

4. Đơn giản thường là tốt nhất

Kẻ thù lớn nhất của hiệu suất công việc đó chính là ý chí của lập trình viên. Càng có nhiều suy nghĩ trong đầu bạn, bạn sẽ càng làm việc kém hiệu quả. Vì thế, sự phức tạp chính là kẻ thù của bạn. Bất cứ lúc nào có thể, hãy tìm cách đơn giản hóa suy nghĩ của mình. Nếu bạn luôn suy nghĩ đến những điều đơn giản, bạn sẽ tìm ra giải pháp nhanh hơn khi bạn có hàng tấn sự phức tạp ở trong đầu.
Những lập trình viên trẻ thường thích sử dụng những cấu trúc dữ liệu và ngôn ngữ lập trình nâng cao như một cách để thể hiện năng lực của họ. Nghe thì khá ấn tượng đấy, nhưng trừ khi bạn phải đảm bảo rằng nó sẽ làm cho dự án của bạn thành công. Nếu không hãy hạn chế dùng chúng.
Với mỗi class/phương thức bạn đưa vào đoạn code của mình, mức độ phức tạp sẽ tăng lên theo cấp số nhân chứ không phải cấp số cộng bình thường. Đưng đưa mọi thứ vào các hàm của bạn khi nó làm tăng thêm độ phức tạp.

5. Đừng viết những đoạn code chung chung, tổng quát

Những đoạn code chung chung có nhiều lợi ích nhưng thường lãng phí thời gian của bạn vì nguy cơ tiềm ẩn những bugs và khá khó khăn trong việc khắc phục. Hardcode không phải là một lựa chọn tồi nếu đoạn code của bạn chỉ đơn giản thực hiện một điều gì đó.
Bài viết này nhận được rất nhiều sự quan tâm cũng như những chia sẽ của rất nhiều developer. Dưới đây là một số chia sẽ được mọi người yêu thích nhất
Luôn luôn có một vài dự án phụ sẽ giữ cho đầu óc của bạn minh mẫn. Khi mọi thứ trong công việc không làm bạn quá bận rộn hoặc chưa đủ thách thức với bạn, hãy dành nhiều thời gian vào các dự án phụ của bạn vào những lúc sau giờ làm việc hay cuối tuần. Thực hiện các dự án phụ có thể sẽ giúp bạn có thêm những kỹ năng mới trong việc thiết lập công cụ của bạn cũng như thử nghiệm nó với các công nghệ mới.
Cấu trúc lại code của bạn bất cứ khi nào có thể. Một khi bạn đã có một cái gì đó làm việc, bạn có thể nghĩ ra một cách tốt hơn để viết những code tương tự. Hãy dành thời gian để viết lại các code trong một cách có ý nghĩa hơn. Có nhiều khả năng bạn sẽ có thẻ bổ sung thêm tính năng mới cho dự án của bạn.
Có một sự hiểu biết về các công cụ và môi trường phát triển của bạn. Biết các công cụ soạn thảo cũng như hiểu rỏ bàn tay của bạn. Biết tất cả các thư viện có sẵn trong các ngôn ngữ bạn học và biết làm thế nào để sử dụng chúng. Ép buộc mình phải viết một ví dụ với mỗi thư viện. Lưu những ví dụ đó để bạn có thể xem chúng bất cứ khi nào cần thiết. Một khi bạn đã hiểu một số thư viện, bạn có nhiều khả năng sẽ nhanh chóng nhớ ra chúng khi gặp vấn đề, bạn cũng biết làm thế nào để sử dụng chúng.
Đọc code của người khác. Đây là một cách học hỏi tuyệt vời. Nếu bạn gặp phải các thành ngữ, các thư viện, các ví dụ hoặc các kỹ thuật mà dường như xa lạ với bạn, hãy tiếp tục khám phá chúng cho đến khi bạn cảm thấy sẵn sàng để thử chúng trong code của riêng bạn.

Nguồn

Wednesday, June 10, 2015

12 Ý TƯỞNG ĐỂ TĂNG NĂNG SUẤT LÀM VIỆC

Với tình trạng có quá nhiều thứ có thể gây xao nhãng đến việc học tập và làm việc của bạn như Facebook, điện thoại. Khiến bạn mất khá nhiều thời gian để hoàn tất công việc, tuy nhiên hiệu quả lại không đạt được như mong muốn.

Đặt ra mục tiêu mỗi ngày, Quăng đi công việc không cần thiết,...Tự tạo cho mình những thói quen dựa trên những "ý tưởng" này ắt hẳn sẽ giúp bạn làm việc và học tập hiệu quả với năng suất tốt hơn.