Традиционно в канун праздника мы предлагаем вам топ расширений для Chrome. В нём вы не найдёте такие известные имена, как AdBlock, потому что о них и так всё уже известно. Вместо этого мы сосредоточились только на тех расширениях, которые обозревались нами на страницах блога в этом году.
UpNext
Расширение UpNext позволяет слушать музыку из YouTube в небольшом встроенном плеере, который появляется после клика на кнопке расширения в панели инструментов Chrome. Кроме этого, UpNext умеет скробблить информацию о треках в Last.fm, демонстрировать списки самых популярных композиций различных жанров и позволяет составлять пользовательские плей-листы.
Некоторые веб-страницы имеют настолько большой размер, что просто для того, чтобы добраться до самого низа, нужно не один десяток раз прокрутить колёсико мышки. Расширение Minimap даёт возможность просмотра примерной карты такой страницы в виде уменьшенного изображения. Так можно быстро оценить, где ты находишься, и в случае необходимости одним щелчком переместиться в нужное место.
Одним из самых действенных способов работы с текстом является выделение его ключевых моментов. В обычной жизни мы делаем это с помощью жёлтого маркера. В интернете таким маркером станет для нас расширение Highly. С его помощью можно легко создать краткий конспект текста, который можно сохранить для себя или поделиться с другими.
Mata — это расширение для Google Chrome, добавляющее в браузер ночной режим. Он нужен для комфортного чтения текста вечером, когда глаза более чувствительны к свету. В Mata нет никаких настроек, лишь кнопка, нажатие на которую включает и отключает ночной режим.
Одной из главных проблем Chrome считается его чрезмерная прожорливость. Расширение The Great Suspender помогает решить эту проблему. Спустя некоторое время оно «усыпляет» неиспользуемые вкладки в браузере, тем самым экономя заряд аккумулятора и ОЗУ.
ARC Welder — это действующий способ запустить любимые и недостающие Android-приложения в браузере Chrome. Если вы так и не нашли достойной десктопной альтернативы своим любимым мобильным приложениям, то это расширение станет для вас отличным вариантом решения проблемы.
Better Search — это расширение для браузера Google Chrome, которое поможет вам быстрее и удобнее искать в Google. При этом оно не только позволяет более продуктивно использовать уже имеющиеся возможности поисковика, но и добавляет целый ряд собственных уникальных функций.
Mini YouTube — это расширение для Chrome, которое добавляет плавающее окошко с проигрываемым видео, когда вы пролистываете страницу вниз. Можно менять размер окна и его местоположение. В будущем расширение запомнит удобный для вас вариант.
Создатели Taco решили не создавать очередной менеджер задач, а просто объединили в одном интерфейсе ваши задачи из таких сервисов, как Asana, Basecamp, Bitbucket, Bugzilla, Codebase, Evernote, Exchange, GitHub Issues, Google Gmail, Google Tasks, Highrise и далее по списку и по алфавиту. Получилось хорошо и, что немаловажно, очень красиво.
Sideplayer — расширение для Google Chrome, которое позволяет смотреть ролики с YouTube в компактном окне. Установите расширение в Chrome и перезапустите браузер. Затем просто нажмите кнопку под видео на YouTube, чтобы вынести его в отдельное всплывающее окно.
Bài viết này đề xuất 10 cuốn sách C++ tốt nhất, giúp bạn học những kiến thức cơ bản của ngôn ngữ lập trình C++. Chúng tôi lựa chọn sách dựa trên kinh nghiệm của mình và có giải thích các yếu tố liên quan với mỗi tựa sách. Các cuốn sách này cũng không được đánh giá về thang điểm vì mỗi cuốn đều chứa nội dung về những chủ đề rất hay.
Chúng ta có rất nhiều tài liệu lập trình C++ có sẵn miễn phí trên internet. Tuy nhiên, khi bạn bắt đầu học từ internet, thì thông tin ở đó có thể khiến bạn đi chệch hướng và chúng không thể chứa tất cả các chủ đề chi tiết như những cuốn sách được. Khi học lập trình qua sách bạn cũng sẽ tập trung hơn và không gặp phải những yếu tố phân tâm sao lãng.
1) The C++ Programming Language, 4th Edition tác giả Stroustrup
C++ Programming Language là cuốn sách hướng dẫn đáng tin cậy và được sử dụng rộng rãi nhất trên thế giới. Nó đã được cập nhật toàn diện theo chuẩn C++ 11 và C++ 14. Tác giả Stroustrup đã giải thích về các đặc trưng C++ 11, thư viện chuẩn, và các kỹ thuật thiết kế chính. Nó cung cấp hướng dẫn cụ thể để tận dụng những cải tiến trong hiệu suất, độ tin cậy và rõ ràng. Cuốn sách này có thể yêu cầu bạn phải có kiến thức lập trình cơ bản trước khi đọc nó. Nếu bạn là người mới bắt đầu thì có thể tham khảo thêm cuốn sách "Programming: Principles and Practice Using C++" cũng của tác giả Stroustrup trước khi đọc cuốn sách này.
2) Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Exception-Safety Solutions tác giả Herb Sutter
Exceptional C++ giải thích khái niệm bằng cách sử dụng các câu đố và thách thức lập trình. Nó sử dụng các hướng tiếp cận khác nhau và cuối cùng đưa ra giải pháp cho từng vấn đề. Hầu hết các vấn đề và giải pháp được lựa chọn từ các chuyên gia hàng đầu trong các nhóm newsgroup về C++. Cuốn sách giải thích về template programming, exceptions, lập trình môi trường đa luồng (multithreaded), quản lý bộ nhớ và tối ưu hóa trong ngôn ngữ lập trình C++. Độc giả có thể nhảy vào bất kỳ chủ đề nào mà không cần đọc từ đầu đến cuối cuốn sách. Nó vẫn chưa cập nhật các tiêu chuẩn C++ 11 hoặc C++ 14.
3) Modern C++ Design: Generic Programming and Design Patterns Applied 1st Edition tác giả Andrei Alexandrescu
Modern C++ Design giải thích các design pattern, generic programming với các design practice tốt. Nó giúp xây dựng các thành phần phần mềm linh hoạt và tái sử dụng được. Tác giả Andrei mô tả các kỹ thuật và tính năng cụ thể trong C++ được sử dụng trong việc xây dựng các generic component và tiếp tục áp dụng các generic component đó vào các ứng dụng thực tế.
4) C++ Coding Standards: 101 Rules, Guidelines, and Best Practices 1st Edition tác giả Andrei Alexandrescu
C++ Coding Standards cung cấp những hướng dẫn có giá trị, những best practice để viết code C++ chất lượng cao. Mỗi mục được giải thích với tiêu đề, tóm tắt, thảo luận, ví dụ và tài liệu tham khảo. Độc giả có thể đọc bất kỳ chủ đề riêng biệt nào mà không cần đọc từ đầu đến cuối cuốn sách. Nó vẫn chưa cập nhật các tiêu chuẩn C++ 11 hoặc C++ 14. Cuốn sách này đã đoạt giải thưởng Jolt Productivity Award tại Hội nghị phát triển phần mềm (Software Development Conference) vào năm 2005.
5) Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 tác giả Scott Meyers
Cuốn sách Effective Modern C++ giải thích các best practice trong C++ 11 và C++ 14. Nó bao gồm các chủ đề như các loại tham chiếu khác nhau, giải thích một cách chính xác và hiệu quả của việc sử dụng biểu thức lambda. Thách thức ở đây là làm sao học cách sử dụng những tính năng này một cách hiệu quả nhất. Cuốn sách cung cấp các hướng dẫn để phát triển phần mềm theo cách chính xác, hiệu quả, có khả năng bảo trì, và portable. Nó mô tả cách làm thế nào để viết phần mềm thực sự tuyệt vời bằng cách sử dụng C++ 11 và C++ 14.
6) C++ Primer (5th Edition) tác giả Stanley B. Lippman, Josée Lajoie, Barbara E. Moo
C++ Primer (tái bản lần thứ 5) đã cập nhật theo chuẩn C++ 11. Nó giới thiệu ngôn ngữ này từ những tính năng mới, các khái niệm C++ cốt lõi, và thư viện mẫu chuẩn. Cuốn sách giúp việc học ngôn ngữ này thông qua các ví dụ lập trình, giải thích lý về do đằng sau các quy tắc. Nếu lập trình viên muốn học từ mức cơ bản đến nâng cao của ngôn ngữ lập trình C++, thì họ có thể chọn một trong hai cuốn sách C++ Primer hoặc "The C++ Programming Language, 4th Edition tác giả Stroustrup".
7) Accelerated C++: Practical Programming by Example tác giả Andrew Koenig
Accelerated C++ hướng dẫn cách viết phần mềm tốt và mạnh mẽ hơn bằng cách sử dụng ngôn ngữ C++. Nó giải thích các khái niệm khá sâu bao gồm cả việc quản lý bộ nhớ, ngoại lệ (exception), và template programming. Accelerated C++ giải thích các khái niệm một cách rõ ràng, từ cơ bản ngôn ngữ lập trình đến nâng cao như tính đa hình (polymorphism), các hàm ảo (virtual). Nó vẫn chưa cập nhật lên chuẩn C++ 11.
8) The C++ Standard Library: A Tutorial and Reference (2nd Edition) tác giả Nicolai M. Josuttis
Cuốn sách C++ Standard Library: A Tutorial and Reference, Second Edition, mô tả thư viện này giờ đây được kết hợp vào chuẩn ngôn ngữ mới ANSI/ISO C++ (C++ 11). Nó cung cấp tài liệu hướng dẫn toàn diện về mỗi thành phần thư viện, bao gồm một giới thiệu về mục đích và thiết kế của thư viện đó; được viết rõ ràng giải thích các khái niệm phức tạp; các chi tiết lập trình thực tế cần thiết để sử dụng có hiệu quả; những traps và pitfalls; chữ ký chính xác và định nghĩa của nhiều class và function quan trọng nhất; và rất nhiều code ví dụ.
9) Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) tác giả Scott Meyers
Cuốn sách Effective C++ giải thích các best practice cho việc phát triển các thành phần phần mềm sử dụng ngôn ngữ lập trình C++. Nó không giải thích các nguyên tắc cơ bản của ngôn ngữ lập trình này. Cuốn sách giải thích các khái niệm cốt lõi trong ngôn ngữ lập trình C++ sử dụng các mục khác nhau. Mỗi mục đưa ra một vấn đề, rồi giải thích và đưa ra mã nguồn các giải pháp. Các lập trình viên có thể đọc bất kỳ mục nào từ cuốn sách này và hiểu được các khái niệm đó. Nó vẫn chưa được cập nhật lên chuẩn C++ 11.
10) Programming: Principles and Practice Using C++ (2nd Edition) tác giả Bjarne Stroustrup
Bjarne Stroustrup chính là "cha đẻ" của ngôn ngữ lập trình C++. Cuốn sách này giải thích các thành phần ngôn ngữ lập trình cơ bản cho những ai chưa biết về ngôn ngữ lập trình này. Nó đã cập nhật lên chuẩn C++ 11 và C++ 14. Cuốn sách này chủ yếu để giải thích về lập trình hướng đối tượng, generic programming cho các sinh viên đại học.
Vài thủ thuật khi sử dụng Foxit Reader mà có thể bạn chưa biết
Source: Theo: Genk.vn
Bạn có đang sử dụng Foxit Reader hay không? Nếu chưa, mời tham khảo vài thủ thuật khá hay về nó.
Bên cạnh Adobe Reader thì Foxit Reader là một trong những lựa chọn tốt nhất trong lĩnh vực quản lý dữ liệu PDF. Với ưu điểm nhỏ gọn, hiệu suất hoạt động cực kỳ nhanh và trang bị nhiều tính năng hữu ích, Foxit Reader đang ngày càng chiếm được nhiều cảm tình của người dùng so với Adobe Reader vốn đã quá nặng nề.
Nếu bạn đang sử dụng Foxit Reader, bài viết này sẽ gợi ý đến bạn một số thủ thuật khá hay khi sử dụng Foxit Reader mà có thể bạn chưa biết đến. Nếu bạn quan tâm, mời tham khảo nội dung sau đây.
Chèn ảnh vào tập tin PDF
Bên cạnh chức năng xem các tập tin PDF, Foxit Reader còn cung cấp thêm khả năng khởi tạo và biên soạn nội dung PDF. Và một trong các tính năng nằm trong danh mục này là khả năng chèn ảnh vào nội dung tập tin PDF. Để thực hiện, bạn hãy mở tập tin PDF mình cần chỉnh sửa lên và nhấp vào tab Home và nhấp vào tùy chọn Image Annotation.
Tiếp theo bạn hãy di chuyển chuột xuống vùng nội dung cần chèn ảnh, sau đó nhấp và kéo một đoạn ngắn vào ngay vị trí cần chèn ảnh và buôn chuột ra.
Hộp thoại chèn ảnh sẽ xuất hiện. Bây giờ bạn hãy nhấp vào Browse… và điều hướng đến vị trí ảnh muốn chèn, sau đó nhấn Open.
Khi đã chọn xong hình, tiếp theo bạn hãy điều chỉnh lại kích cỡ đường viền, vị trí ảnh bằng cách nhấp vào tùy chọn Advanced…
Khi mọi thứ đã ưng ý, bạn hãy nhấp vào OK để quay lại khung chèn ảnh. Tại đây bạn còn có thể tùy chỉnh lại độ nét của ảnh (Opacity) hoặc xoay ảnh (Rotate).
Và khi mọi thứ đã vừa ý, bạn hãy nhấn OK để chèn ảnh vào nội dung. Ngoài ra, bạn còn có thể điều chỉnh lại kích thước và vị trí của ảnh ngay trong nội dung sau khi chèn một cách dễ dàng.
Tạo chữ ký cuối nội dung tập tin PDF
Việc tạo chữ ký dưới mỗi nội dung văn bản tạo ra ngoài mục đích ghi dấu ấn cá nhân của người dùng vào đó còn là việc nêu lên bản quyền của mình về việc đã tạo ra nó. Và tính năng này trên Foxit Reader có tên là PDFSign. Và sau đây là cách sử dụng.
Mở tập tin cần tạo chữ ký và nhấp vào tab Protect rồi chọn PDF Sign > Create Signature.
Hộp thoại Create Signature xuất hiện và cung cấp cho bạn các lựa chọn khởi tạo bao gồm: Draw Signature (chữ ký bằng hình vẽ), From Clipboard (từ Clipboard đã lưu trong Foxit Reader) và Import Image (chọn ảnh để làm chữ ký).
Tùy vào lựa chọn của bạn mà sẽ có các thao tác tương ứng.
Bên cạnh đó, Foxit Reader còn cung cấp thêm tùy chọn đặt mật khẩu (Password protection) để không cho người khác có thể sửa đổi chữ ký trong nội dung PDF mà bạn tạo ra.
Sau khi đã tạo xong chữ ký cho riêng mình, bạn hãy nhấn Save để lưu lại và áp dụng ngay vào văn bản PDF đang soạn thảo.
Đính kèm tập tin vào nội dung PDF
Có một điều khá thú vị là người dùng có thể đính kèm một tập tin nào đó như hình ảnh, video hay gì khác vào tập tin PDF, và Foxit Reader cũng hỗ trợ tính năng này. Để sử dụng, bạn hãy mở tập tin PDF cần đính kèm dữ liệu vào đó và nhấp vào biểu tượng chiếc ghim ở thanh Navigaton Panels.
Cửa sổ đính kèm tập tin xuất hiện, bạn hãy nhấp vào biểu tượng Add Attachments để gọi hộp thoại File Attachments lên.
Sau đó nhấp vào Add Files… rồi điều hướng đến tập tin hoặc thư mục mà bạn muốn đính kèm.
Khi đã chọn xong, bạn hãy nhấn OK để lưu lại là xong.
Trên đây là vài thủ thuật nhỏ khá hay khi sử dụng Foxit Reader, hi vọng bài viết sẽ có ích cho bạn.
Tôi nên học ngôn ngữ lập trình nào để dễ kiếm việc làm?
Lập trình không hề dễ dàng; hoặc ít ra việc học lập trình là không dễ dàng, đặc biệt khi bạn bắt đầu từ con số 0. Có thể bạn phải mất nhiều năm làm việc cật lực mới trở thành một lập trình viên thực sự giỏi; vậy liệu có một cách nào đó chọn ra một ngôn ngữ lập trình phù hợp để bắt đầu ngay hôm nay, để có thể kiếm được một công việc tuyệt vời trong vài năm?
Để tìm câu trả lời, tôi đã đưa câu hỏi này tới ban biên tập của chúng tôi gồm các chuyên gia có nhiều năm kinh nghiệm trong nghề lập trình. Những gì xảy ra sau đó là một cuộc thảo luận thú vị mà bạn sẽ muốn đọc trước khi bắt tay vào cuộc hành trình của mình để trở thành một lập trình viên chuyên nghiệp.
Nhưng đây không phải là về một lời khuyên (kiểu như "hãy chọn JavaScript"), mà nó là một phương pháp - một cái gì đó người ta có thể sử dụng trong hai năm kể từ ngày hôm nay, về mặt lý thuyết là như vậy. Làm thế nào để thực sự biết những ngôn ngữ nào đang gia tăng? Những số liệu phổ biến nào là thước đo tin cậy và số liệu nào là đáng nghi ngờ (và tại sao)? Đâu là những trang web tốt nhất để bạn tham khảo mức lương? GitHub có phải là một nguồn số liệu tốt hay không?
Ví dụ, bạn sẽ thấy chẳng mấy ai nhảy vào học PHP vào những ngày này - nhưng nhiều, rất nhiều các lập trình viên vẫn đang kiếm sống rất tốt bằng lập trình PHP, và nó vẫn chiếm phần lớn những gì đang chạy trên nền tảng Web. Vì vậy, liệu lao vào học PHP bây giờ có phải là một ý tưởng tồi? (Không hẳn là như vậy!)
Không chỉ có một ngôn ngữ lập trình
Đây là ý kiến của James, một nhà phát triển Web của chúng tôi nói về điều này:
Các lập trình viên thường không chỉ học một ngôn ngữ lập trình duy nhất. Bất cứ ai đi theo con đường Khoa học Máy tính cổ điển sẽ học rất nhiều Java, một ít Haskell, một ít Prolog nếu họ tham gia một khóa trí tuệ nhân tạo AI, một ít Node.js nếu họ tham gia một khóa kỹ thuật về startup, một ít PHP nếu họ tìm hiểu về các CMS truyền thống, một ít .NET nếu họ thực tập tại một văn phòng của các công ty lớn, một ít JavaScript nếu họ làm thiết kế web, một ít C ++ nếu họ làm thiết kế game, và cuối cùng là một ít Ruby nếu họ muốn lãng phí cuộc đời mình với các ngôn ngữ tối nghĩa mà chẳng mấy ai thực sự sử dụng.
Chẳng có "phương pháp" nào cả, và bạn không chọn một ngôn ngữ để học mà ngược lại: nó chọn bạn!
Học một ngôn ngữ cũng giống như việc cả năm bạn chỉ ăn mỗi một món bánh quy vậy. Và nghiêm túc mà nói, liệu có ai chọn công việc theo mức lương dự kiến không?
Nhưng sẽ ra sao nếu bạn không học ngành Khoa học Máy tính?
Tôi đã trả lời James như sau:
Có một thực tế là: Phương pháp này không phải dành cho những người theo học ngành Khoa học Máy tính cổ điển. Nó được dành cho những người đang học MOOC và số lượng của các khóa học lập trình trực tuyến, rất nhiều người đang tự học lập trình từ đầu. Và khi bạn bắt đầu như thế, bạn cần một ngôn ngữ để bắt đầu tìm hiểu. Có lẽ sau này bạn không còn dùng nó nữa, nhưng ngôn ngữ đầu tiên sẽ là một sự đầu tư quan trọng của thời gian và nỗ lực - vì vậy nó rất có giá trị.
Điều gây được tiếng vang nhất đối với tôi đó là việc anh nói rằng - có ai mà đi chọn công việc theo mức lương dự kiến không? Tôi nghĩ rằng một số người làm như vậy, nhưng tôi cũng cho rằng đó không phải là một cách tuyệt vời để làm theo.
Có một thực tế là, mọi người đang cố gắng tìm ra ngôn ngữ phù hợp để bắt đầu, và sử dụng chính ngôn ngữ này trong thế giới thực theo quyết định đó (chứ không chỉ là việc họ tìm một ngôn ngữ thật dễ học - như Pascal chẳng hạn ...).
Trước tiên hãy chọn một dự án, sau đó mới đến ngôn ngữ
James đã trả lời như thế này:
Được rồi, có lẽ một trong những quan điểm của phương pháp này đó là: không có một phương pháp chính xác nào cả. Khi tôi lần đầu tiên đến với PHP, đó là thông qua WordPress. Lúc đó tôi đã có một nền tảng về Khoa học Máy tính trong lập trình và một số kinh nghiệm thiết kế web, nhưng tôi chưa bao giờ học PHP trước đó. Tôi đã học nó vì WordPress xem ra khá đơn giản, và tôi muốn vọc vậy với WordPress. Không phải vì tôi đã nhìn vào một danh sách các xu hướng công nghệ, hoặc xem xét một nghề để theo đuổi, mà vì nó là một cái gì đó thú vị và tôi muốn biết sử dụng nó.
Nếu ai đó tìm cách để học lập trình hoàn toàn với mục đích của một công việc, thì họ sẽ thất bại. Nếu họ đang tìm kiếm chỉ vì họ thích học cách lập trình một cái gì đó, thì sẽ không quan trọng về ngôn ngữ mà họ chọn, miễn là nó có thể khơi dậy niềm đam mê của họ.
Một lý do khác để chọn dự án trước
Đây là khi Simon bước vào với một số lời khuyên khá thực dụng:
Đầu tiên và trước hết, nó phụ thuộc vào việc bạn muốn phát triển Web hay là phần mềm dạng "cổ điển".
Nếu lập trình phần mềm cổ điển, thì Java là khá tốt:
Hướng đối tượng đơn giản
Đa nền tảng (Linux, Windows, Mac, Android)
Cú pháp tương tự như rất nhiều ngôn ngữ lập trình khác (JS, C#).
Không thể nói nhiều về phát triển Web, mặc dù HTML/JS/CSS/PHP/MySQL dường như khá hiệu quả cho rất nhiều người. Python cũng vậy.
Nhưng vâng, "để giúp bạn có được một công việc tuyệt vời trong 2 năm" thì làm tôi khó trả lời quá. Cần nhấn mạnh những khía cạnh sai lầm của việc học làm thế nào để lập trình. Một khi bạn có thể lập trình, bạn rất dễ dàng chuyển sang ngôn ngữ khác.
Để được tuyển dụng khi chỉ biết một ngôn ngữ lập trình cụ thể cũng tương tự việc được tuyển dụng cho vị trí kế toán mà bạn chỉ biết có mỗi dùng MS Excel vậy. Nếu đó là trình độ chuyên môn chính, thì nó có lẽ sẽ là một công việc tồi.
Ngôn ngữ lập trình tự bản thân nó không thực sự quan trọng. Khi nói đến các công việc lập trình thì những khía cạnh quan trọng nhất thường được hiểu là kiến trúc và thiết kế cơ bản của phần mềm, quá trình lập trình nói chung, hiểu biết về các design pattern, biết khi nào thì sử dụng chúng, và làm thế nào để áp dụng một pattern cụ thể cho tác vụ của bạn - tất cả chúng đều độc lập với ngôn ngữ. Khi một lập trình viên đã nắm được điều này, thì việc nhảy sang một ngôn ngữ hoàn toàn mới là chuyện nhỏ như con thỏ.
Thậm chí có những kỹ năng như quản lý dự án, viết tài liệu kỹ thuật là những thứ quan trọng đối với một lập trình viên còn hơn là hiểu biết về bất kỳ một ngôn ngữ lập trình cụ thể nào đó.
Nền tảng nào bạn đang xây dựng trên đó mới quan trọng: tiếng Anh hay tiếng Latin?
Đó là khi Guy bước vào để nhắc nhở tất cả chúng ta rằng ngôn ngữ cũng khá quan trọng, ở một mức độ nào đó:
Các ngôn ngữ tự nó không phải là điều quan trọng nhất để nhận được một công việc, tôi đồng ý. Tuy nhiên, bạn đang xây dựng sản phẩm dựa trên nền tảng nào. Thực ra tôi đã đi theo cả 2 lộ trình này, và để dễ hiểu hơn thì tôi sẽ so sánh các ngôn ngữ lập trình với các ngôn ngữ của con người nhé!
Python dường như là tiếng Anh của ngày hôm nay vậy. Ngày càng nhiều, tôi thấy các khóa học lập trìnhvà thậm chí giáo trình Khoa học Máy tính tại các trường đại học bắt đầu dạy bạn với Python thay vì Java, nó dường như đã trở nên rất phổ biến trong khoảng 10 năm nay. Bạn có thể làm được rất nhiều thứ bằng cách sử dụng Python.
C++ giống như tiếng Latin của thế giới lập trình vậy. Nếu bạn học nó, bạn có thể hiểu được những nguyên lý cơ bản của nhiều ngôn ngữ và tìm hiểu chúng một cách dễ dàng hơn. Nếu bạn thành thạo C++ thì Python cũng là chuyện nhỏ.
Thế còn một "công việc lập trình" thì sao?
Đến lượt Matthew nhảy vào cho ý kiến, để nhắc nhở tất cả chúng ta rằng trở thành một lập trình viên có thể có ý nghĩa rất khác nhau đối với những người khác nhau:
Một điều chưa được nói đến trong bất kỳ chỗ nào trong bài viết này đó là loại công việc lập trình nào mà bạn muốn.
Bạn không quá kiểu cách về các quyền lợi được ném cho các nhân viên Startup? Hay bạn muốn ổn định với một mức lương kha khá, nhưng không sở hữu cổ phần của công ty? Bạn thích mặc những bộ đồ sang trọng của dân kinh doanh? Hãy học C#, Java hoặc COBOL. COBOL cũng có lợi thế của việc có rất nhiều ứng dụng ngân hàng được viết bằng nó. Và hầu hết các lập trình viên COBOL hoặc đã nghỉ hưu hoặc đã chết, vì vậy có rất nhiều nhu cầu cho các lập trình viên COBOL với một mức lương lên đến 6 con số! Tuy nhiên, bạn sẽ phải làm việc trên những codebase rất lớn, được viết rất tồi và đã có tuổi đời hàng thập kỷ. Điều đó chẳng vui tí nào.
Nhưng nếu bạn không quan trọng việc có một công việc ổn định? Bạn muốn được làm việc trên các sản phẩm thú vị, và bạn sẵn sàng bị mất việc nếu mô hình kinh doanh đó không hoạt động tốt? Tôi nhận thấy rằng trang Hacker News là một nơi chắc chắn để tìm hiểu về các ngôn ngữ đang được sử dụng bởi giới startup. Khi tôi thực tập tại một công ty startup trước đây, chúng tôi sử dụng một kết hợp của Go, Python và CoffeeScript. Những startup khác sử dụng Rails và Groovy và tất cả những dạng ngôn ngữ và framework ít được biết đến khác. Chỉ cần chọn lấy một trong số chúng và bạn sẽ tìm thấy một công việc thú vị ở đâu đó.
Code mới hay code cũ?
Viết code mới là một trải nghiệm hoàn toàn khác so với việc bảo trì một ứng dụng hiện có, như Bruce nói thêm:
Với ý kiến của bạn về COBOL, bạn nên quan tâm đến một yếu tố nữa: bạn muốn làm việc trên code mới hay là đi bảo trì code của người khác? Đây có thể là một yếu tố rất quan trọng khi quyết định hướng đi. Đối với các dự án nhỏ, việc duy trì một codebase được viết bởi người khác có thể không phải là tồi, nhưng tôi đã thấy một số đoạn code nơi bạn và nhiều đồng nghiệp khác cứ nhìn chằm chằm vào nó trong nhiều giờ và hỏi, "Suy nghĩ của thằng cha viết ra đoạn code này là gì vậy nhỉ?", hoặc trong trường hợp lập trình viên ban đầu đã lợi dụng một tính năng cụ thể hay một bug trong trình biên dịch (mà có thể đã được fix trong phiên bản trình biên dịch hiện tại) để thực hiện một cái gì đó.
Điều gì sẽ xảy ra nếu bạn không có sự lựa chọn?
Guy trở lại để nhắc nhở tất cả chúng ta rằng không phải ai cũng có nhiều sự lựa chọn:
Matthew đặt ra một câu hỏi rất hay là, "Những loại công việc lập trình nào mà bạn muốn?"
Thật kỳ lạ, tôi chưa bao giờ thực sự nghĩ rằng mình đã có nhiều sự lựa chọn trong vấn đề này. Tôi biết mình muốn trở thành một nhà phát triển web khi tôi bắt đầu học lập trình. Nhưng tôi nhận ra mình trở nên tốt hơn khi chuẩn bị nhận bất kỳ công việc nào mà tôi có thể, và sẵn sàng học hỏi về công nghệ mới đó. Bây giờ tôi là một người biết rất nhiều thứ, thành thạo một số công nghệ - nhưng không tinh thông một cái nào cả.
Đối với việc tìm ra nơi bạn muốn làm việc, thì việc xác định phong cách sống mà bạn muốn là rất quan trọng. Sau đó nhìn vào các thông tin tuyển dụng từ những doanh nghiệp có phù hợp với các tiêu chí của bạn và xem họ đang tìm kiếm gì. Soạn ra một portfolio chứa những thứ tương tự như những gì họ đang làm, đặc biệt nếu bạn không được đào tạo chính quy trong các công nghệ mà họ đang sử dụng. Có thể bạn đã học Java trong trường, nhưng họ lại sử dụng C#. Vì vậy, bạn đã tự học C# và viết ra một vài chương trình bằng ngôn ngữ này như là bằng chứng rằng bạn biết những gì mình đang làm và rằng bạn có khả năng tự học thêm những công nghệ khác.
Không có một câu trả lời đơn giản
Nếu có bất cứ điều gì mà cuộc thảo luận này có thể chỉ ra, thì đó là những câu hỏi đơn giản không phải luôn những có câu trả lời đơn giản. Chưa hết, sau khi đọc ý kiến của mọi người, tôi cảm thấy có thêm rất nhiều thông tin - và chúng đã làm thay đổi suy nghĩ của tôi.
Tôi chắc chắn rằng chúng tôi đã không thể đưa ra hết những quan điểm có thể ở đây - điều này để dành cho phần bình luận của các bạn. Tôi sẽ rất thích nghe ý kiến của bạn về vấn đề này, cho dù bạn là một lập trình viên chuyên nghiệp hay không. Làm thế nào để bạn chọn một ngôn ngữ lập trình và có thể kiếm được một công việc tốt sau 2 năm? Có cách nào đó để chọn ngôn ngữ lập trình hiệu quả? Hãy chia sẻ suy nghĩ của bạn trong phần bình luận phía dưới nhé!
As we continue to serve as a resource for business innovation information, we compiled a list of the Top 10 News/Blog sites featuring information about Big Data in addition to our Top 50 #BigData Twitter Influencers. These sources were compiled using specific search terms, Alexa rankings, site information, and relevancy to the topic.
1. Forrester Big Data Blog Overview: An aggregation of blogs from company contributors focusing on Big Data topics.
About Forrester (from their site) – Forrester is a global research and advisory firm and serves professionals in 19 key roles across three distinct client groups. Their clients face progressively complex business and technology decisions every day. To help them understand, strategize, and act upon opportunities brought by change, Forrester provides proprietary research, consumer and business data, custom consulting, events and online communities, and peer-to-peer executive programs. Forrester guides leaders in IT, marketing and strategy, and the technology industry through independent fact-based insight, ensuring business success today and tomorrow.www.forrester.com
2. Smarter Computing Big Data Blog Overview: A compilation of contributors blogging about Big Data and Cloud topics. Each week the top reads in BigData is posted, which lists and links back to top articles.
About Smarter Computing Blog (from their site) – The blog is intended to provide readers with thought-provoking content and a place to talk about the issues raised within the content. Smarter Computing Blog feels strongly that the blog is not going to deliver final answers to the issues raised, but will represent a starting point for conversation around the issues.
3. GigaOm Overview:GigaOm features news articles about Big Data, Analytics and Mobile. It’s a great place to read recent tech news stories and updates on hot topics.
About GigaOm (from their site) – Founded in 2006, GigaOM is now the leading provider of online media, events and research for global technology innovators. The company is one of the most credible and insightful voices at the intersection of business and technology, with an online audience of more than 4.5 million monthly unique visitors; industry-leading events, including Structure, Mobilize, GigaOM RoadMap, and Structure: Data; and a pioneering market research service and digital community, GigaOM Pro, which provides expert analysis and research on emerging technology markets.
4. Greenplum.com Overview: Greenplum provides a section within the site with aggregated blog posts and news focused on Analytics, Big Data, Data Scientists, Data Warehousing and Hadoop. It pulls information directly from Forbes, The New York Times, Wall Street Journal, and Information Week.
About Greenplum (from their site) – Greenplum, a division of EMC (acquired by EMC in July 2010, becoming the foundation of EMC’s Big Data Division), is driving the future of Big Data analytics with breakthrough products that harness the skills of data science teams to help global organizations realize the full promise of business agility and become data-driven, predictive enterprises.
5. Data Stories Overview: A bi-weekly podcast on data visualization with with Enrico Bertini and Moritz Stefaner (two Big Data industry influencers). Each podcast post provides a breakdown of the content by time and relevant resource links.
6. Data Round Table Overview: A community of Big Data and data experts discussing data quality, data integration, MDM, data governance, and data migration. This is a nice compilation of various perspectives.
About Data RoundTable (from the site) – The Data Roundtable is a forum where industry thought leaders come together to share the spotlight and discuss data management topics. Each day you’ll find a new post about something relevant and thought-provoking, from news on federal regulations to pop-culture commentaries on how data management relates to Seinfeld. There’s no agenda – just ideas.
7. ZDNet Overview: This blog features Andrew Brust discussing Big Data, Hadoop, NoSQL and the mystical discipline of data science.
8. The Data Warehouse Insider Overview: Technical details, ideas and news on data warehousing and Big Data from the Oracle Team.
9. Planet BigData Overview: Planet BigData is an aggregator of worldwide blogs about Big Data, Hadoop, and related topics.
10. Dataversity Overview (from their site): DATAVERSITY™ provides resources for information technology (IT) professionals, executives and business managers to learn about the uses and management of Big Data. The worldwide community of practitioners, advisers and customers participates in, and benefits from, DATAVERSITY’s educational conferences, discussions, articles, blogs, webinars, certification, news feeds and more.