<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chuyện Nghề - HaiNH</title>
	<atom:link href="https://hainh.dev/chuyen-muc/chuyen-nghe/feed/" rel="self" type="application/rss+xml" />
	<link>https://hainh.dev</link>
	<description></description>
	<lastBuildDate>Fri, 14 Nov 2025 07:21:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://hainh.dev/wp-content/uploads/2025/10/cropped-logomyblog-32x32.png</url>
	<title>Chuyện Nghề - HaiNH</title>
	<link>https://hainh.dev</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">249252746</site>	<item>
		<title>Gửi các em GenZ mê Stored Procedure: &#8220;Không phải cứ nhét hết vào SP là &#8216;pro&#8217; đâu!&#8221;</title>
		<link>https://hainh.dev/gui-cac-em-genz-me-stored-procedure-khong-phai-cu-nhet-het-vao-sp-la-pro-dau/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gui-cac-em-genz-me-stored-procedure-khong-phai-cu-nhet-het-vao-sp-la-pro-dau</link>
					<comments>https://hainh.dev/gui-cac-em-genz-me-stored-procedure-khong-phai-cu-nhet-het-vao-sp-la-pro-dau/#respond</comments>
		
		<dc:creator><![CDATA[NGUYỄN HOÀNG HẢI]]></dc:creator>
		<pubDate>Fri, 14 Nov 2025 07:14:16 +0000</pubDate>
				<category><![CDATA[Chuyện Nghề]]></category>
		<category><![CDATA[Cơ sở dữ liệu]]></category>
		<category><![CDATA[chuyện nghề]]></category>
		<category><![CDATA[hainh]]></category>
		<category><![CDATA[học sql]]></category>
		<category><![CDATA[sql]]></category>
		<guid isPermaLink="false">https://hainh.dev/?p=7496</guid>

					<description><![CDATA[<p>Chào các đồng nghiệp tương lai, Dạo này lướt TikTok, Facebook, thỉnh thoảng tôi – một &#8220;fossil&#8221; (hóa thạch) freelancer ~U40 – lại thấy các bạn tranh luận nảy lửa. Chủ đề hot nhất có vẻ là: &#8220;Code nghiệp dư mới viết query trực tiếp, &#8216;pro&#8217; phải dùng Stored Procedure (SP) cho mọi thứ!&#8221;. Nghe...</p>
<p>The post <a href="https://hainh.dev/gui-cac-em-genz-me-stored-procedure-khong-phai-cu-nhet-het-vao-sp-la-pro-dau/">Gửi các em GenZ mê Stored Procedure: “Không phải cứ nhét hết vào SP là ‘pro’ đâu!”</a> first appeared on <a href="https://hainh.dev">HaiNH</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Chào các đồng nghiệp tương lai,</p>



<p>Dạo này lướt TikTok, Facebook, thỉnh thoảng tôi – một &#8220;fossil&#8221; (hóa thạch) freelancer ~U40 – lại thấy các bạn tranh luận nảy lửa. Chủ đề hot nhất có vẻ là: &#8220;Code nghiệp dư mới viết query trực tiếp, &#8216;pro&#8217; phải dùng Stored Procedure (SP) cho mọi thứ!&#8221;.</p>



<p>Nghe xong, tôi chỉ biết cười trừ, lắc đầu nhớ lại thời &#8220;trẻ trâu&#8221; của mình.</p>



<p>Các bạn nói SP bảo mật hơn (chống SQL Injection), chạy nhanh hơn (vì pre-compiled), tái sử dụng tốt hơn&#8230; <strong>Vâng, về lý thuyết, sách giáo khoa viết thế, không sai!</strong></p>



<p>Nhưng các bạn à, sách giáo khoa nó khác với cái &#8220;thực tế phũ phàng&#8221; khi các bạn đi làm, nhất là freelancer, va chạm với 10 loại dự án, 5 loại khách hàng, và 3 loại &#8220;deadline dí sml&#8221; (sấp mặt luôn).</p>



<p>Là một người đã từng &#8220;thề non hẹn biển&#8221; chỉ dùng SP, đây là lý do tôi phải &#8220;quay xe&#8221; trong 80% các dự án hiện đại:</p>



<h4 class="wp-block-heading">1. Ác mộng mang tên &#8220;Version Control&#8221; (Quản lý phiên bản)</h4>



<p>Đây là cái &#8220;đau&#8221; nhất.</p>



<p>Code ứng dụng (C#, Java, Node.js) của các bạn nằm gọn gàng trên Git. Bạn <code>feature/them-chuc-nang-A</code>, bạn <code>fix/bug-B</code>. Mọi thứ rõ ràng.</p>



<p>Giờ bạn dùng SP. Cái SP đó nằm ở đâu? <strong>Nó nằm dưới Database.</strong></p>



<p>Bạn sửa 1 cái SP. Làm sao bạn đồng bộ nó với cái branch code của em? Bạn viết script <code>ALTER PROCEDURE</code> à? Bạn commit cái file <code>.sql</code> đó lên Git à?</p>



<p>Rồi 10 ông dev cùng sửa 1 cái SP? Merge kiểu gì? Khóc thét!</p>



<p>Chưa kể dự án có CI/CD (DevOps). Deploy code thì dễ, auto-deploy thay đổi database (mà cụ thể là SP) nó là cả một câu chuyện &#8220;đau thương&#8221; mà chỉ người trong cuộc mới hiểu. Trong khi dùng ORM (như Entity Framework, TypeORM), mình chỉ cần &#8220;Code-First&#8221; rồi chạy <code>migration</code>, khỏe re.</p>



<h4 class="wp-block-heading">2. &#8220;Đi tìm logic&#8221; &#8211; Cuộc phiêu lưu mệt mỏi</h4>



<p>Dự án to lên, business logic (logic nghiệp vụ) bắt đầu phức tạp. Khi dùng SP, logic của các bạn bị xé ra làm hai:</p>



<ul class="wp-block-list">
<li>Một nửa nằm trong code (Application Layer).</li>



<li>Một nửa nằm trong Database (Stored Procedures).</li>
</ul>



<p>Tưởng tượng bạn nhận bug: &#8220;Anh ơi, sao đơn hàng X không tự động giảm giá 10%?&#8221;.</p>



<p>Bạn bắt đầu hành trình: Lục code&#8230; không thấy. À, chắc nó nằm dưới SP. Bạn mở cái <code>sp_CalculateOrderTotal</code> dài 1000 dòng, viết bằng T-SQL (thứ ngôn ngữ &#8220;tù&#8221; hơn C# hay JS vạn lần), với 15 cái <code>IF...ELSE</code>, 10 cái <code>JOIN</code>, 5 cái <code>TEMP TABLE</code>.</p>



<p>Bạn debug cái SP đó kiểu gì? <code>PRINT</code> à? Chúc bạn may mắn.</p>



<p>Trong khi nếu logic nằm hết trong code, mình chỉ cần đặt &#8220;breakpoint&#8221;, F10, F11 vài phát là ra bug.</p>



<h4 class="wp-block-heading">3. &#8220;Khóa cổ&#8221; vào một Database (Vendor Lock-in)</h4>



<p>Đây là cái freelancer rất sợ. Hôm nay bạn viết 500 cái SP bằng T-SQL cho <strong>SQL Server</strong>. Mọi thứ chạy mượt. Ngày mai, khách hàng bảo: &#8220;Ngân sách eo hẹp quá, mình chuyển sang <strong>PostgreSQL</strong> (miễn phí) đi em.&#8221;</p>



<p>Toang!</p>



<p>Toàn bộ 500 cái SP đó (vốn chứa logic nghiệp vụ) gần như phải <strong>viết lại từ đầu</strong> vì cú pháp khác nhau.</p>



<p>Nếu bạn viết logic trong code (dùng ORM), bạn chỉ cần đổi cái &#8220;ConnectionString&#8221;, cài cái &#8220;Provider&#8221; (driver) cho Postgres. Xong! Code nghiệp vụ giữ nguyên 99%.</p>



<h4 class="wp-block-heading">4. Cái &#8220;Nhanh hơn&#8221; nó có thật sự &#8220;Nhanh&#8221;?</h4>



<p>Ngày xưa, 15-20 năm trước, SP nhanh hơn rõ rệt. Giờ thì sao? Các ORM hiện đại quá thông minh rồi. Chúng biết &#8220;parameterize&#8221; (chống SQL Injection y hệt SP), biết &#8220;caching query plan&#8221; (cũng gần như pre-compiled).</p>



<p>Trừ khi bạn làm báo cáo (reporting) siêu nặng, xử lý dữ liệu hàng loạt (batch processing) cả triệu record, còn với 90% các nghiệp vụ CRUD (Create, Read, Update, Delete) thông thường, sự chênh lệch hiệu năng giữa SP và một câu query tối ưu (viết bằng Dapper hay EF Core) là <strong>không đáng kể</strong>.</p>



<p>Đánh đổi sự &#8220;nhanh hơn 0.01 giây&#8221; để lấy mớ &#8220;ác mộng&#8221; ở mục 1, 2, 3? Mình xin kiếu.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f631.png" alt="😱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Khi nào thì &#8220;ông chú&#8221; này dùng SP?</h4>



<p>Tất nhiên, SP không phải là rác. Mình vẫn dùng khi:</p>



<ol start="1" class="wp-block-list">
<li><strong>Làm báo cáo phức tạp:</strong> Những cái query <code>JOIN</code> 10 bảng, <code>GROUP BY</code> 5 tầng, <code>PIVOT</code> các kiểu. Nhét nó vào SP cho gọn code.</li>



<li><strong>Xử lý dữ liệu lớn/theo lô:</strong> Cần import/export 1 triệu dòng, chạy job đêm&#8230; SP xử lý mấy cái này &#8220;nuốt&#8221; tốt hơn code ứng dụng.</li>



<li><strong>Bảo mật cực cao:</strong> Một số nghiệp vụ yêu cầu ứng dụng không được phép <code>SELECT</code> trực tiếp vào bảng, mà chỉ được gọi qua SP (đã được phân quyền <code>EXECUTE</code>) để che giấu cấu trúc bảng. (Hiếm, nhưng có).</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Túm cái váy lại&#8230;</h4>



<p>Các bạn à, nghề lập trình không có &#8220;viên đạn bạc&#8221; (silver bullet) – tức là không có công nghệ nào &#8220;đúng&#8221; cho mọi trường hợp.</p>



<p>Việc các bạn cuồng tín SP (hoặc bất cứ thứ gì) và chê bai cách làm khác chỉ cho thấy các bạn &#8230; chưa &#8220;va chạm&#8221; đủ nhiều thôi.</p>



<p>Hãy dùng não, phân tích bối cảnh dự án, ưu nhược điểm của từng cái, rồi hãy chọn. Đừng vì thấy ai đó trên TikTok bảo &#8220;dùng SP mới pro&#8221; mà vội tin sái cổ.</p>



<p><strong>Tools (công cụ) là để phục vụ mình, chứ đừng làm nô lệ cho tools.</strong></p>



<p>Thân ái và chúc bớt &#8220;cuồng tín&#8221;! <em>Một Freelancer già hay lướt TikTok.</em></p><p>The post <a href="https://hainh.dev/gui-cac-em-genz-me-stored-procedure-khong-phai-cu-nhet-het-vao-sp-la-pro-dau/">Gửi các em GenZ mê Stored Procedure: “Không phải cứ nhét hết vào SP là ‘pro’ đâu!”</a> first appeared on <a href="https://hainh.dev">HaiNH</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://hainh.dev/gui-cac-em-genz-me-stored-procedure-khong-phai-cu-nhet-het-vao-sp-la-pro-dau/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7496</post-id>	</item>
		<item>
		<title>&#8220;Code đẹp&#8221; có quan trọng bằng &#8220;Coder tốt&#8221; không?</title>
		<link>https://hainh.dev/code-dep-co-quan-trong-bang-coder-tot-khong/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-dep-co-quan-trong-bang-coder-tot-khong</link>
					<comments>https://hainh.dev/code-dep-co-quan-trong-bang-coder-tot-khong/#respond</comments>
		
		<dc:creator><![CDATA[NGUYỄN HOÀNG HẢI]]></dc:creator>
		<pubDate>Tue, 11 Nov 2025 02:32:32 +0000</pubDate>
				<category><![CDATA[Chuyện Nghề]]></category>
		<category><![CDATA[chuyện nghề]]></category>
		<category><![CDATA[hainh]]></category>
		<guid isPermaLink="false">https://hainh.dev/?p=7492</guid>

					<description><![CDATA[<p>Chào anh em đồng nghiệp, Dạo này lướt các diễn đàn hay &#8220;tóp tóp&#8221;, tôi thấy anh em developer (cả trẻ lẫn &#8220;già&#8221;) hay khoe và tranh luận sôi nổi về một chủ đề muôn thuở: Code đẹp và Sạch. Nào là &#8220;senior thì code phải gọn, phải clean&#8221;, &#8220;code phải theo chuẩn SOLID&#8221;, &#8220;mọi...</p>
<p>The post <a href="https://hainh.dev/code-dep-co-quan-trong-bang-coder-tot-khong/">“Code đẹp” có quan trọng bằng “Coder tốt” không?</a> first appeared on <a href="https://hainh.dev">HaiNH</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Chào anh em đồng nghiệp,</p>



<p>Dạo này lướt các diễn đàn hay &#8220;tóp tóp&#8221;, tôi thấy anh em developer (cả trẻ lẫn &#8220;già&#8221;) hay khoe và tranh luận sôi nổi về một chủ đề muôn thuở: <strong>Code đẹp và Sạch</strong>.</p>



<p>Nào là &#8220;senior thì code phải gọn, phải clean&#8221;, &#8220;code phải theo chuẩn SOLID&#8221;, &#8220;mọi function phải &lt; 10 dòng&#8221;, và tất nhiên, &#8220;phải đầy đủ comment&#8221; như một bài văn mẫu.</p>



<p>Đừng hiểu lầm tôi, với tư cách là một người đã &#8220;cày cuốc&#8221; trong ngành này đủ lâu, tôi <em>hoàn toàn</em> đồng ý rằng đó là những thói quen <strong>tuyệt vời</strong>. Code sạch giúp chúng ta dễ bảo trì, dễ mở rộng, và giúp đồng đội (hoặc chính chúng ta 6 tháng sau) đọc lại code mà không muốn&#8230; &#8220;nghỉ việc&#8221;.</p>



<p>Nhưng, (luôn có một chữ &#8220;nhưng&#8221; lớn) tôi thấy dường như mọi người đang biến nó thành một thứ <strong>tiêu chuẩn vàng</strong> duy nhất để đánh giá một lập trình viên.</p>



<p>Hôm nay, từ góc nhìn của một &#8220;lão làng&#8221; đã từng code &#8220;nhanh&#8221;, code &#8220;ẩu&#8221; rồi lại code &#8220;đẹp&#8221;, tôi muốn chia sẻ một quan điểm có thể hơi khác một chút:</p>



<p><strong>&#8220;Code đẹp&#8221; có quan trọng bằng &#8220;Coder tốt&#8221; không?</strong></p>



<p>OK, nói thẳng: Với anh em mình, đặc biệt là dân freelance hoặc làm product &#8220;nhà trồng&#8221;, code là &#8220;vốn lưu động&#8221;. Mà đã là &#8220;vốn&#8221; thì phải &#8220;xoay vòng&#8221; nhanh. Khi bạn bắt đầu <strong>tự code – tự kiếm sống</strong>, mọi quan điểm về “đẹp” hay “xấu” của code đều thay đổi. Khi tiền, deadline, và khách hàng cùng gõ cửa, thứ quan trọng nhất không phải là code “sạch”, mà là <strong>code mang lại giá trị nhanh và hiệu quả nhất.</strong></p>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4b0.png" alt="💰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Code là chi phí. Sản phẩm mới là nguồn thu.</h2>



<p>Làm freelancer, tôi tự bỏ công, bỏ thời gian – đó là <strong>vốn đầu tư</strong> của mình.<br>Mỗi dòng code là <strong>một chi phí cơ hội</strong>.<br>Còn sản phẩm tôi viết ra – đó mới là <strong>tài sản sinh lời</strong>.</p>



<p>Nếu ví freelancer như một doanh nghiệp mini, thì:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Thành phần</th><th>Doanh nghiệp</th><th>Freelancer</th></tr></thead><tbody><tr><td>Vốn đầu tư</td><td>Tiền mặt</td><td>Thời gian, công sức</td></tr><tr><td>Sản phẩm</td><td>Hàng hóa, dịch vụ</td><td>App, web, tool, API…</td></tr><tr><td>Doanh thu</td><td>Bán hàng</td><td>Khách hàng trả tiền, quảng cáo, license</td></tr><tr><td>Chi phí</td><td>Nhân sự, vận hành</td><td>Thời gian code, bug, refactor</td></tr><tr><td>Lợi nhuận</td><td>Phần còn lại sau chi phí</td><td>Giá trị thật mang về túi</td></tr></tbody></table></figure>



<p>Và giống như doanh nghiệp,</p>



<blockquote class="wp-block-quote">
<p>Freelancer <strong>không sống bằng code đẹp</strong>, mà sống bằng <strong>sản phẩm được dùng, được trả tiền.</strong></p>
</blockquote>



<h4 class="wp-block-heading">Kịch bản 1: &#8220;Vay Nóng&#8221; để &#8220;Chớp Deal&#8221; (Code Nhanh)</h4>



<p>Đây là thực tế ở Việt Nam: Khách hàng (đặc biệt là khách SME) tìm đến bạn và nói:</p>



<blockquote class="wp-block-quote">
<p>&#8220;Hải ơi, anh/chị cần làm <em>gấp</em> cái web bán hàng &#8220;mì ăn liền&#8221;. Tuần sau bên chị khai trương rồi! Chạy được là được!&#8221;</p>
</blockquote>



<p>Ngân sách? Vừa phải. Deadline? &#8220;Cháy máy&#8221;.</p>



<p>Lúc này, bạn là &#8220;con buôn&#8221; đứng trước một &#8220;mối hàng&#8221; (deal).</p>



<ul class="wp-block-list">
<li><strong>Lựa chọn A (Đầu tư dài hạn &#8211; Code Sạch):</strong> Bạn mở VS Code, set up project NestJS/Spring Boot, thiết kế Clean Architecture, chia 3-4 layer, viết Unit Test&#8230;
<ul class="wp-block-list">
<li><strong>Kết quả:</strong> 2 tuần sau code vẫn &#8220;sạch&#8221; nhưng chưa &#8220;chạy&#8221;. Khách &#8220;lặn&#8221; mất tăm, họ đã tìm một bên khác làm bằng&#8230; WordPress/PHP thuần trong 3 ngày. Bạn &#8220;ôm&#8221; đống code sạch đó&#8230; để ngắm. Bạn &#8220;lỗ vốn&#8221; thời gian.</li>
</ul>
</li>



<li><strong>Lựa chọn B (&#8220;Vay Nóng&#8221; &#8211; Code Nhanh):</strong> Bạn &#8220;vã&#8221; thẳng. Có thể là ExpressJS một file, hoặc PHP vứt thẳng logic vào file <code>index.php</code>.
<ul class="wp-block-list">
<li><strong>Kết quả:</strong> 4 ngày xong. Web chạy. Khách &#8220;ok&#8221; chuyển khoản. Bạn có tiền.</li>



<li>Đây chính là &#8220;vay nóng kỹ thuật&#8221;. Bạn chấp nhận &#8220;lãi suất cao&#8221; (sau này code này bảo trì &#8220;muốn khóc&#8221;), để đổi lấy &#8220;vốn&#8221; (tiền) ngay lập tức.</li>
</ul>
</li>
</ul>



<p>Với các dự án nhỏ, dự án &#8220;thời vụ&#8221;, <strong>một &#8220;coder tốt&#8221; là một &#8220;con buôn&#8221; giỏi</strong>, biết khi nào cần &#8220;đánh nhanh thắng nhanh&#8221; để thu tiền về.</p>



<h4 class="wp-block-heading">Kịch bản 2: &#8220;Trả Nợ&#8221; và &#8220;Đầu Tư&#8221; (Code Sạch)</h4>



<p>Cái shop &#8220;mì ăn liền&#8221; kia bỗng làm ăn &#8220;phất&#8221; lên. 6 tháng sau, họ quay lại:</p>



<blockquote class="wp-block-quote">
<p>&#8220;Hải ơi, giờ chị muốn nâng cấp. Làm cho chị cái module quản lý kho, tích hợp Giao Hàng Tiết Kiệm, với thanh toán MoMo.&#8221;</p>
</blockquote>



<p>Đây! &#8220;Tiền&#8221; đây! Họ sẵn sàng &#8220;xuống tiền&#8221; (pay) cho một thứ &#8220;xịn&#8221;.</p>



<p>Lúc này, nếu bạn lôi đống code &#8220;vay nóng&#8221; ngày xưa ra để &#8220;chắp vá&#8221;, bạn sẽ &#8220;chết&#8221;. Sửa một chỗ, sập 3 chỗ.</p>



<p>Đây là lúc &#8220;con buôn&#8221; trở thành &#8220;nhà đầu tư&#8221;.</p>



<p>Bạn nói với khách: &#8220;OK chị, để nâng cấp, em cần &#8216;đập đi xây lại&#8217; phần lõi cho nó &#8216;chịu tải&#8217; (scalable) và ổn định.&#8221;</p>



<p>Giờ là lúc bạn &#8220;trả nợ&#8221;: Dùng NestJS, dùng kiến trúc &#8220;xịn&#8221;, viết test. Bạn &#8220;đầu tư&#8221; code sạch, vì bạn biết cái &#8220;hệ thống&#8221; này giờ là &#8220;cỗ máy kiếm tiền&#8221; dài hạn cho cả bạn và khách.</p>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f914.png" alt="🤔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Các dự án lớn có “code bẩn” lúc đầu không?</h2>



<p>Câu trả lời là: <strong>CHẮC CHẮN CÓ!</strong></p>



<p>Facebook những ngày đầu là minh chứng sống.<br>Mark Zuckerberg từng nói:</p>



<blockquote class="wp-block-quote">
<p>“Move fast and break things.”<br><em>(Di chuyển nhanh và phá vỡ mọi thứ.)</em></p>
</blockquote>



<p>Câu này không dành cho “code đẹp” đâu — mà là “code nhanh”.</p>



<p>Facebook tập trung toàn lực vào việc <strong>thu hút người dùng</strong>, <strong>tăng trưởng</strong>, và <strong>chiếm thị trường</strong>.<br>Họ <strong>chấp nhận nợ kỹ thuật (technical debt)</strong> để đổi lấy tốc độ.<br>Code ban đầu chắc chắn lộn xộn nếu soi bằng tiêu chuẩn ngày nay.</p>



<p>Nhưng khi họ đã lớn mạnh, có người, có tiền, có thời gian, họ mới <strong>bắt đầu “trả nợ”</strong>:</p>



<ul class="wp-block-list">
<li>Viết lại toàn bộ hệ thống.</li>



<li>Xây dựng React.</li>



<li>Tạo ra ngôn ngữ Hack (từ PHP).</li>
</ul>



<p>“Chuẩn hoá” <strong>đến sau khi thành công</strong> — và đó là lựa chọn chiến lược.</p>



<p><strong>Kết luận:</strong> Đừng &#8220;sùng bái&#8221; Clean Code một cách mù quáng. Hãy hỏi: &#8220;Cái &#8216;deal&#8217; này cần &#8216;quay vòng vốn&#8217; nhanh hay &#8216;đầu tư&#8217; dài hạn?&#8221;</p><p>The post <a href="https://hainh.dev/code-dep-co-quan-trong-bang-coder-tot-khong/">“Code đẹp” có quan trọng bằng “Coder tốt” không?</a> first appeared on <a href="https://hainh.dev">HaiNH</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://hainh.dev/code-dep-co-quan-trong-bang-coder-tot-khong/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7492</post-id>	</item>
		<item>
		<title>Lập trình viên giỏi và lập trình viên trung bình khác nhau như nào ?</title>
		<link>https://hainh.dev/lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao</link>
					<comments>https://hainh.dev/lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao/#respond</comments>
		
		<dc:creator><![CDATA[NGUYỄN HOÀNG HẢI]]></dc:creator>
		<pubDate>Mon, 12 Nov 2018 09:07:18 +0000</pubDate>
				<category><![CDATA[Chuyện Nghề]]></category>
		<category><![CDATA[chuyện nghề]]></category>
		<category><![CDATA[kỹ năng mềm]]></category>
		<category><![CDATA[lập trình viên]]></category>
		<guid isPermaLink="false">https://hainh2k3.com/?p=1134</guid>

					<description><![CDATA[<p>Trong một nhóm lập trình viên thì làm thế nào để nhận biết người này giỏi hơn người kia? Cũng như trong công việc người này mang lại giá trị cho công ty nhiều hơn người kia ? Nếu chỉ nhìn vào kết quả làm việc, khối lượng công việc hoàn thành của mỗi người...</p>
<p>The post <a href="https://hainh.dev/lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao/">Lập trình viên giỏi và lập trình viên trung bình khác nhau như nào ?</a> first appeared on <a href="https://hainh.dev">HaiNH</a>.</p>]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Trong một nhóm lập trình viên thì làm thế nào để nhận biết người này giỏi hơn người kia? Cũng như trong công việc người này mang lại giá trị cho công ty nhiều hơn người kia ? Nếu chỉ nhìn vào kết quả làm việc, khối lượng công việc hoàn thành của mỗi người là giống nhau thì khó mà đánh giá. Tuy nhiên cũng có những khía cạnh khác để chúng ta đánh giá và so sánh như nào là người lập trình viên giỏi hơn nhé.</p>
<p><img fetchpriority="high" decoding="async" data-attachment-id="1141" data-permalink="https://hainh.dev/lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao/lap-trinh-vien-2/" data-orig-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-2.jpeg" data-orig-size="1024,506" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="lap trinh vien 2" data-image-description="" data-image-caption="" data-medium-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-2-300x148.jpeg" data-large-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-2.jpeg" class="aligncenter size-full wp-image-1141" src="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-2.jpeg" alt="" width="1024" height="506" srcset="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-2.jpeg 1024w, https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-2-300x148.jpeg 300w, https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-2-768x380.jpeg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<h3><span style="color: #ff0000;">Hiểu rõ các vấn đề trước khi code.</span></h3>
<p style="text-align: justify;">Những lập trình viên giỏi thực sự là người rất cẩn thận khi coding, bằng việc tập trung vào chất lượng code chứ không số lượng. Người lập trình viên trung bình rất thích code, họ dường như ngồi lì trước máy tính hầu hết thời gian để sinh ra hàng đống code nhưng chất lượng chương trình của họ có hoặc không thể làm việc hiệu quả, thường gặp bug và họ phải sửa chúng nhiều lần. Việc “viết code và fix bug” này làm phí hoài thời gian và chẳng bao giờ đạt tới chất lượng như khách hàng mong đợi. Đoạn code tốt được tạo ra bởi người lập trình viên có kỉ luật, họ biết từng vấn đề gặp phải cần mất bao lâu thời gian, lập kế hoạch cẩn thận về cách tiếp cận của mình để đảm bảo rằng họ hoàn thành nhiệm vụ tương ứng.</p>
<p><img decoding="async" data-attachment-id="1143" data-permalink="https://hainh.dev/lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao/lap-trinh-vien-3/" data-orig-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-3.jpg" data-orig-size="696,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="lap trinh vien 3" data-image-description="" data-image-caption="" data-medium-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-3-300x203.jpg" data-large-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-3.jpg" class="aligncenter size-full wp-image-1143" src="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-3.jpg" alt="" width="696" height="470" srcset="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-3.jpg 696w, https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-3-300x203.jpg 300w" sizes="(max-width: 696px) 100vw, 696px" /></p>
<p style="text-align: justify;">Với mọi vấn đề đều có nhiều cách giải quyết nó nhưng người lập trình viên giỏi nhất sẽ cố gắng hiểu vấn đề trước khi làm bất cứ cái gì. Bằng việc hiểu vấn đề, người đó sẽ suy nghĩ cẩn thận về cách giải quyết nó và thảo luận nó với team của mình và tìm ra giải pháp tốt nhất. Việc lắng nghe các giải pháp từ mọi người sẽ khiến bạn nhìn nhận một vấn đề theo hướng đa chiều, thảo luận và tìm ra giải pháp tốt nhất cho vấn đề đó. Bằng việc nhìn vào vấn đề, hình dung ra kết quả, người đó sẽ hình dung mình cần giải quyết nó trong bao lâu. Ngược lại, với những lập trình viên trung bình sẽ ngay lập tức bắt đầu viết mã trước mà không suy nghĩ và rồi sửa nó nếu nó không đáp ứng yêu cầu. Kiểu “code trước tính sau ” và “sửa rồi code tiếp” này sẽ chẳng bao giờ tạo ra những phần mềm thực sự chất lượng cả, bởi vì họ càng sửa nó, họ sẽ càng tiềm ẩn bug trong tương lai.</p>
<h3><span style="color: #ff0000;">Cùng chia sẻ để thành công.</span></h3>
<p style="text-align: justify;">Người lập trình viên giỏi nhất thường thích chia sẽ những công nghệ mới với team của mình và học lẫn nhau. Họ biết rằng bằng việc chia sẻ, họ sẽ học được nhiều hơn, thế nên khi họ tiếp cận công nghệ mới, họ sẽ thảo luận với team về những gì cần thiết cho công việc hiện tại để áp dụng, phần khác, nó giúp mọi người tránh mất thời gian và sai lầm thay vì tự mày mò nó một mình. Với những lập trình viên giỏi, họ luôn cố gắng trở nên tốt hơn bằng việc làm cho người khác giỏi hơn. Họ luôn tìm kiếm lời khuyên từ những người thâm niên trong ngành bởi vì những người này có kinh nghiệm, đã trải qua nhiều dự án và họ thường có những câu trả lời chính xác. Việc teamworks sẽ khiến công việc trở nên dễ dàng, khiến dự án có thể dễ dàng thành công hơn ngồi làm một mình.</p>
<p style="text-align: justify;">Người lập trình viên trung bình có thể rất giỏi chuyên môn nhưng họ có tính khá giống một người hùng, được người khác thừa nhận nên họ không thích chia sẻ và giữ thông tin cho riêng mình, trong trường hợp này họ đánh mất giá trị của mình, vì thực sự, trong ngành công nghệ phần mềm, công việc cần sự chung tay từ mọi người và nếu trong một team mà có quá nhiều người thích tỏ ra anh hùng thì chung cuộc sẽ chẳng có ai thành anh hùng thực sự cả. Cho dù họ giỏi và có thể kết thúc công việc của mình đúng hạn nhưng nếu tất cả mọi người không thể hoàn thành dự án chung thì kết quả sẽ chẳng thể thay đổi. Thất bại vẫn sẽ đến vì sự ích kỷ.</p>
<h3><span style="color: #ff0000;">Biết cách sắp xếp công việc.</span></h3>
<p style="text-align: justify;">Một trong những kĩ năng rất quan trọng của những lập trình viên hàng đầu đó là việc họ biết cách sắp xếp công việc. Người lập trình viên trung bình rất giỏi về kĩ thuật nhưng nếu họ không có khả tổ chức, hàng đống công việc cần được thực hiện và cuối cùng sẽ bị tràn ngập bởi sức ép dự án. Người lập trình viên giỏi luôn lên kế hoạch cho công việc của mình và đánh giá tầm quan trọng của dự án với các nhiệm vụ hàng ngày chi tiết và ưu tiên những việc quan trọng trước. Họ sắp xếp công việc hằng ngày, các cuộc họp, nhiệm vụ và cập nhật mọi thứ mà họ phải đạt được trong ngày để cho mọi việc sẽ không bị trì hoãn sang ngày sau. Họ lưu lại tất cả công việc của mình và có thể, báo cáo cho cuộc họp, và cung cấp các chi tiết khác khi được yêu cầu. Bằng cách làm việc theo thời gian biểu lịch biểu, công việc sẽ trở nên đơn giản hơn trong tầm tay, đạt được mục tiêu cuối cùng của dự án.</p>
<p style="text-align: justify;">Ngược lại, người lập trình viên trung bình không nghĩ xa trước mà chỉ làm việc tương ứng với điều người quản lí giao cho họ . Khi có sự thay đổi hoặc vấn đề xảy ra, họ không biết phải ưu tiên cái gì và không có kế hoạch hoàn thành chúng mà dựa vào người quản lí dự án phân công cho họ việc tương ứng. Người lập trình viên giỏi nhất không chỉ nghĩ về mục đích dự án, mà còn hình dung nó và hiểu cách hoàn thành nó bởi vì họ có thể thấy chính xác điều họ phải làm từng ngày, từng tuần, từng tháng để đáp ứng mong đợi.</p>
<h3><span style="color: #ff0000;">Không ngừng học hỏi.</span></h3>
<p style="text-align: justify;">Người lập trình viên giỏi nhất sẽ thường xuyên cải tiến kĩ năng của họ. Họ sẽ luôn tìm kiếm tri thức mới và thường không đợi Manager yêu cầu. Họ học điều mới theo cách riêng , bởi vì họ thực sự muốn là người giỏi nhất trong lĩnh vực mà họ biết. Các lập trình viên giỏi thật sự thường quan tâm đến các Event mới về công nghệ, các khóa học mới và họ sẽ chủ động tham dự, học hỏi những công nghệ mới để phát triển bản thân, cũng như mong muốn đóng góp các kiến thức mới vào công việc</p>
<p style="text-align: justify;">Những lập trình viên trung bình không thích học cái mới nhiều bởi vì họ tin rằng họ đã tốt nghiệp đại học, đã có bằng cấp và biết “đủ để làm việc của mình”. Họ bằng lòng với điều đang có nhưng có lẽ, các bạn ấy quên rằng, công nghệ sẽ luôn thay đổi từng giây, và có lẽ sau vài năm nữa, các bạn ấy nên lo lắng về kĩ năng của mình liệu có đủ khả năng để đáp ứng được công việc hiện tại hay không. Công nghệ phần mềm là ngành rất năng động và nếu người ta không giữ cùng nhịp với sự thay đổi của công nghệ, họ có thể bị đào thải.</p>
<p style="text-align: justify;">Có nhiều lập trình viên trung bình trong công nghiệp ngày nay nhưng có rất ít “lập trình viên giỏi thực sự”. Lí do thật đơn giản: ngày nay rất ít trường dạy cách làm việc nhóm trong chương trình đào tạo lập trình viên. Lập trình viên trung bình có thể giỏi về kĩ thuật nhưng lại nghèo nàn kiến thức làm việc nhóm và sắp xếp hệ thống công việc hằng ngày.</p>
<p><img decoding="async" data-attachment-id="1145" data-permalink="https://hainh.dev/lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao/lap-trinh-vien-5/" data-orig-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-5.jpg" data-orig-size="500,333" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="lap trinh vien 5" data-image-description="" data-image-caption="" data-medium-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-5-300x200.jpg" data-large-file="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-5.jpg" class="aligncenter size-full wp-image-1145" src="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-5.jpg" alt="" width="500" height="333" srcset="https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-5.jpg 500w, https://hainh.dev/wp-content/uploads/2018/11/lap-trinh-vien-5-300x200.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<p>Không có đam mê, bạn sẽ không bao giờ vươn xa trong sự nghiệp lập trình viên cả. Thiếu đam mê chính là lí do chính tạo nên việc rất nhiều lập trình viên không thể trở thành giỏi cho dù họ có kiến thức và có cố gắng bằng mọi cách. Tất nhiên ai cũng hiểu, ngồi làm việc bạn không thích sẽ chẳng bao giờ mang lại kết quả tốt nhất.</p>
<p>Bài viết được mình tham khảo từ nguồn <a href="https://www.topitworks.com/vi/" target="_blank" rel="noopener">topitworks.com</a></p><p>The post <a href="https://hainh.dev/lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao/">Lập trình viên giỏi và lập trình viên trung bình khác nhau như nào ?</a> first appeared on <a href="https://hainh.dev">HaiNH</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://hainh.dev/lap-trinh-vien-gioi-va-lap-trinh-vien-trung-binh-khac-nhau-nhu-nao/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1134</post-id>	</item>
	</channel>
</rss>
