Mùng 6 tết, Đã mang lấy nghiệp vào thân, thì đừng có trách trời gần trời xa

Người biết chữ, hãy đọc dù chỉ 1 lần

1. Nếu như Mr Bean là cây hài số 1 bên phương Tây thì Châu Tinh Trì (Stephen Chow) là vua hài của phương Đông. Anh là diễn viên, đạo diễn và chủ hãng phim Thái Tinh, chủ chuỗi fastfood, thương hiệu nước hoa, thời trang và một vài toà nhà ở Hongkong. Forbes HK ước tính tài sản của anh khoảng 300 triệu đô la Mỹ và hiện anh đã bí mật chuyển phần lớn sang quỹ từ thiện, bản thân vẫn ăn cơm bình dân và đeo khẩu trang đi xe đạp. Câu chuyện quỳ xuống khi còn trẻ để xin vai diễn của họ Châu, dù là 1 vai quần chúng, khiến bao người phải ngẫm nghĩ. Anh nói, khi cần tôi sẵn sàng làm mọi thứ để được trao cơ hội lao động, đã chọn làm thì chấp nhận tất cả, đã chơi là đánh đổi và trả giá. Một là lên đỉnh vinh quang cao nhất, hai là an phận hạng xoàng, không có “vẻ đẹp người về nhì, vẻ đẹp Á quân Á hậu”. (Cái quỳ của họ Châu là thái độ sẵn sàng xả thân để có cơ hội thi thố năng lực, khác với cái quỳ để xin ăn, luồn cúi xu nịnh để được danh lợi của người hèn hạ. Khác nhau về bản chất).

Nếu bạn đã từng đi thực tập sinh hoặc đi làm ở Singapore, Hàn Quốc, Nhật Bản, Israel…thì bạn mới biết, để nhận được một đồng tiền công, các ông chủ tư bản đã vắt kiệt sức mình ra sao, các ông chủ nhỏ đã khôn vặt thế nào, các ông chủ lớn đã khôn khéo ra sao,…Đó là chuyện hơn cả bình thường. Ăn cơm chúa thì phải múa tối ngày, mày không múa thì chúa lạnh lùng giật bát cơm lại, múa chậm bị chửi như tát vô mặt. Xin đừng hụt hẫng. Đó là bài học lớn ghi sâu vô não, để sau này mình làm sếp, mình sẽ áp dụng cái hay của ông này, mình sẽ không hành xử giống ông kia.

Sang Anh sang Mỹ du học, dù là trường top như Harvard, mình sẽ thấy nó chẳng có gì hay ho, cũng chỉ là những kiến thức mình đã biết. Sinh viên không phải lúc nào cũng nằm sõng soài trên bãi cỏ như trong catalogue quảng cáo du học. Quảng cáo mà, chỉ những đứa trẻ ngờ nghệch mới tin là dầu đó gội xong thì tóc suôn mượt như cô người mẫu. Đi học ở nước ngoài, cái người ta cho mình đâu phải là kiến thức mà cứ cắm cúi học và học. Cái cần lĩnh hội là phương pháp TỰ HỌC, văn minh phương Tây, khả năng tự xoay sở, tự thích nghi, cảm giác đắng cay tủi nhục trong những tháng ngày tha hương. Một ngày còn visa sống ở xứ người là một ngày enjoy, chứ không phải đếm ngày đếm tháng rồi hát bài “còn bao lâu, cho thân thôi lưu đày chốn đây” một cách tiêu cực.

Vô một công ty làm, dù là công ty số 1 VN hay số 1 thế giới, mình sẽ thấy không giống như mình tưởng tượng, chán kinh khủng. Mình chỉ nhìn lúc họ party ăn uống, họp hành, sự kiện, bài viết…chứ vô trực tiếp làm mỗi ngày mới biết sự thực. Hoa hậu lộng lẫy qua trang điểm và ánh đèn sân khấu, cứ vô phòng ngủ của cổ sẽ biết nhan sắc thật. Ông A bà B trên báo thấy giàu có lung linh, thì cứ làm việc rồi biết họ đối xử thế nào, tiền bạc là cái dễ thấy nhất. Mà đối xử thế nào thì đều là bình thường, người đủ triết học sẽ nhận ra TỐT HAY XẤU chẳng qua chỉ là nhận định riêng trong 1 giai đoạn ngắn. Hụt hẫng, chán nản, tụt mood là cảm giác chỉ có ở những đứa trẻ con. AI CHO MÌNH VỠ MỘNG SỚM CHÍNH LÀ THẦY TỐT. Ngay cả bản thân mình cũng có lúc suy nghĩ và hành động không tốt đẹp mấy, THÌ NGƯỜI TA CŨNG RỨA. Khi nào bạn biết “nhân vô thập toàn”, cứ 1 người có bản chất lương thiện là được chấp nhận, thì khi đó bạn thực sự lớn lên.

Nếu 1 lần được trao cơ hội (nhất là cơ hội nghề nghiệp), nhất định phải làm đến “khô máo”. Có thể mình không thành công, vì năng lực không phù hợp, nhưng cảm giác gắng sức mỗi ngày để leo tới đỉnh núi là trải nghiệm quý báu. Thi đấu thể thao, mục đích là để chinh phục đỉnh núi của sự thách thức, chứ không chỉ là để cho khoẻ.

2. Châu Tinh Trì có nói, để có danh có phận, bạn phải vượt qua cái ngại ngùng cố hữu hay sĩ diện của dân châu Á, mình vô danh, có ai biết đâu mà. Đừng để cái tôi lớn mà hỏng cuộc đời đi. Hạ thấp mình xuống, để người ta cho mình cơ hội. Chảnh chảnh, cứ nghĩ mình ngon, rồi sau mới thấy thất bại toàn tập, chưa giàu đã già, KHÔNG CÓ THỜI GIAN SỬA LỖI. Mình chả là gì trong 7.5 tỷ người trên trái đất này dù từng giỏi nhất trường cấp 3, nhất trường ĐH, giải nhất toàn quốc, từ nhỏ được bao nhiêu người khen giỏi khen đẹp. VN là 1 chấm nhỏ xíu trên bản đồ thế giới, nhất VN có là gì với thế giới đâu. Mình đến hay đi, thế giới không có gì khác biệt. Ngày bạn chết, trái đất vẫn quay, người ta vẫn sống, mọi thứ vẫn như cũ, bồ cũ sẽ có người yêu mới. Bạn rời công ty, người ta sẽ thuê người mới, chứ không có doanh nghiệp nào đóng cửa vì nhân sự nghỉ việc. Chỉ có cái tôi mình to đùng, nghĩ tới nghĩ lui và suy diễn phức tạp khiến bạn mất cơ hội (hiện bạn đang nghĩ là MÌNH SẼ CHO NÓ BIẾT MẶT). Mặt bạn có mấy tỷ người biết mà bạn tự ái (mà bạn đang nghĩ là tự trọng), bạn nổi giận, bạn tụt mood hay tụt cái gì thì kệ bạn. Người ta chỉ vinh danh người có thành tựu. Mình ngồi đó mà “em ngại, em thấy sao sao, em cho rằng, em rút lui vì đó là chỗ em không thích, vai này em không thèm diễn, job này em không thèm làm, chỗ này em không thèm ở, phải X thì em mới Y”…thì sẽ có người khác trám vào ngay, nhân loại đông như kiến cỏ. Cứ lên lầu cao nhìn xuống phố thì sẽ thấy người lúc nhúc trên đường. Mình có là ai, là ai?

Những tuổi trẻ biết cúi đầu, hạ cái tôi càng thấp thì càng trưởng thành nhanh chóng. Tiếp viên Japan Airlines quỳ xuống đưa thuốc nếu hành khách bị say máy bay. Cả đoàn tiếp viên đứng múa dỗ 1 đứa trẻ đang khóc. Khách vừa đại tiện bẩn thỉu trong toilet, những cô gái xinh đẹp đó lao vào ngay để chà rửa, tay cầm giấy lau phân còn dính trên bồn, chả thấy gớm gì. Đó là nghề nghiệp của người phục vụ, phải làm tốt trách nhiệm, phải yêu nghề. Rồi xuống phố, sang trọng giàu có thế nào, hộ chiếu Nhật Bản được miễn visa bao nhiêu nước không biết, nhưng khi làm thì phải dấn thân. Còn tiếp viên nhiều hãng cứ hất mặt lên trời, làm phục vụ mà cứ sợ người khác coi thường, thấy mệt. Đi làm sale bị khách chửi đuổi mà chán nản buồn rầu thì do sĩ diện quá, cái tôi lớn quá. Nhận 1 vị trí mà không làm tròn nhiệm vụ thì mới đáng trách. Quỳ chỉ là 1 động tác biểu hiện I CAN DO EVERYTHING. Quỳ xin cơ hội lao động không hề nhục, chỉ có quỳ để xin ăn mới bị khinh khi.

3. Cứ không phạm pháp hay hại người, là mình OK làm. Cha mẹ mình không là doanh nhân có nhà máy xí nghiệp, bản thân không có trí óc siêu việt để có thể tự tạo ra cơ hội, phải đổi não. Lao ra đường nhặt rác nhặt phân, quỳ xuống để sau này đứng thẳng lên, cúi đầu lúc trẻ để về già ngẩng cao. Những ông chủ tiệm nail lớn nhất ở Mỹ ở Anh, có tài sản hàng triệu đô la, Tết đi du thuyền sang trọng mấy chục ngàn đô, nhưng quay về tiệm, họ sẵn sàng quỳ xuống ngồi giũa móng chân thúi quắc của khách hàng để lấy vài chục đô. CỨ CÓ THÀNH TỰU, CÓ TIỀN THÌ TỰ ĐỘNG ĐỜI PHÂN LOẠI. Chủ hãng kềm lớn từng mài kềm trên phố. Lý Gia Thành từng dọn toilet. Cô chủ một ngân hàng lớn từng đi làm ô sin. Việt Vương Câu Tiễn, Tôn Tẫn nếm phân, Hàn Tín luồn háng, mật đắng cỡ nào cũng nếm, gai đau cỡ nào cũng có thể nằm lên. Nói em sẵn sàng nếm mật nằm gai, mà mùi thức ăn này nồng quá em ăn không vô, chỗ ngủ này nóng quá, chỗ làm kia buồn quá, bà kia nhìn mặt không ưa, ông kia nhìn thấy sợ, em không cảm thấy thoải mái….thì thôi xin chia buồn cùng em. Em chắc chắn sẽ nằm trong đám đông một đời chật vật dưới chân núi. Đỉnh vinh quang chỉ dành cho người có năng lực thích nghi đạt MAX, cái tôi đạt MIN.

Vứt cái tôi qua một bên thì mới hoà hợp được với người khác. Mình nghĩ “gì thì gì chứ mình không bao giờ quỳ, có cho thì mình cũng không thèm,…” thì sẽ có người khác thèm. “Ai quỳ mà được cơ hội thi thố tài năng thì nhục nhã, kệ họ, tôi không quan tâm” thì chỉ là lý do nguỵ biện cho sự bất tài và cái tôi lớn của mình mà thôi, chứ trong lòng vẫn “quan tâm thấy mẹ”, “thèm chết cha” luôn, tại vì sĩ diện quá mà không có. Cái QUỲ của Châu Tinh Trì ở đây chính là THÁI ĐỘ với đời. Người trong lý thuyết đi ra thường sẽ không thể hiểu được cho đến khi bị đời trét phân lên mặt (lý do các doanh nghiệp cực sợ sinh viên mới ra trường, đặc biệt đứa được cha mẹ chu cấp đều đặn tiền hàng tháng đi học ĐH mà không bươn trải làm thêm). Thái độ quyết định sự thành công chứ không phải IQ EQ PQ gì sất ráo. Thái độ luôn quan trọng hơn so với trình độ, đến tuổi nào đó bạn mới hiểu ra thì đã quá già.

NẾU CHỈ CÓ 1 CƠ HỘI MÀ TỚI 2 NGƯỜI CẦN, THÌ HÃY CHO NGƯỜI TRẺ ĐANG QUỲ XUỐNG. Có mỗi động tác quỳ xuống mà không làm được, không dám làm, không chịu làm, thì đừng nói chi chữ PHỤNG SỰ, CỐNG HIẾN, DẤN THÂN, LÝ TƯỞNG SỐNG, SỨ MẠNG CUỘC ĐỜI. Người không có triết lý sống trên đời thì nhàn nhạt, vô vị như nước ốc. Gặp người có cái tôi to đùng thì thôi đừng bàn chuyện kinh bang tế thế (kinh tế) với họ.

Hãy để họ tiếp tục lớn lên.

Nguồn: Tony Buổi Sáng

[linux] lỗi intel 82574L NICs: network hangs / ASPM Bug / e1000 driver

Nhiều năm trước và đến gần đây mình gặp phải 1 lỗi trên các dòng máy chủ linux đời cũ chạy Linux 6.3 ((RHEL 6.3 and CentOS 6.3, 6.x). Tình huống gặp phải thường là

  • Mạng bị treo
  • Không có mạng

Chỉ có cách phải khởi động lại server , điều này thì thực sự không ổn nếu server đó đang phục vụ cho các dịch vụ realtime hiệu suất cao (server mình là Supermicro và Intel 82574L-based network cards ). Các bạn sẽ thấy được logs như sau:

Jan 25 11:36:15 localhost kernel: WARNING: at net/sched/sch_generic.c:265 dev_watchdog+0x26b/0x280() (Not tainted)
Jan 25 11:36:15 localhost kernel: Hardware name: X8DTL
Jan 25 11:36:15 localhost kernel: NETDEV WATCHDOG: eth1 (e1000e): transmit queue 0 timed out
Jan 25 11:36:15 localhost kernel: Modules linked in: nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables joydev ipt_REJECT iTCO_wdt iTCO_vendor_support sg serio_raw i2c_i801 i2c_core lpc_ich mfd_core e1000e ptp pps_core ioatdma dca i7core_edac edac_core shpchp ext4 jbd2 mbcache sd_mod crc_t10dif pata_acpi ata_generic ata_piix mptsas mptscsih mptbase scsi_transport_sas dm_mirror dm_region_hash dm_log dm_mod [last unloaded: nf_conntrack]
Jan 25 11:36:15 localhost kernel: Pid: 0, comm: swapper Not tainted 2.6.32-696.el6.x86_64 #1
Jan 25 11:36:15 localhost kernel: Call Trace:
Jan 25 11:36:15 localhost kernel: <IRQ> [<ffffffff8107c721>] ? warn_slowpath_common+0x91/0xe0
Jan 25 11:36:15 localhost kernel: [<ffffffff8107c826>] ? warn_slowpath_fmt+0x46/0x60
Jan 25 11:36:15 localhost kernel: [<ffffffff8149d83b>] ? dev_watchdog+0x26b/0x280
Jan 25 11:36:15 localhost kernel: [<ffffffff8109fded>] ? insert_work+0x6d/0xb0
Jan 25 11:36:15 localhost kernel: [<ffffffff813df4b0>] ? rh_timer_func+0x0/0x10
Jan 25 11:36:15 localhost kernel: [<ffffffff8149d5d0>] ? dev_watchdog+0x0/0x280
Jan 25 11:36:15 localhost kernel: [<ffffffff8108f8c7>] ? run_timer_softirq+0x197/0x340
Jan 25 11:36:15 localhost kernel: [<ffffffff81085245>] ? __do_softirq+0xe5/0x230
Jan 25 11:36:15 localhost kernel: [<ffffffff8101055e>] ? timer_interrupt+0x1e/0x30
Jan 25 11:36:15 localhost kernel: [<ffffffff8100c38c>] ? call_softirq+0x1c/0x30
Jan 25 11:36:15 localhost kernel: [<ffffffff8100fc95>] ? do_softirq+0x65/0xa0
Jan 25 11:36:15 localhost kernel: [<ffffffff810850d5>] ? irq_exit+0x85/0x90
Jan 25 11:36:15 localhost kernel: [<ffffffff81554935>] ? do_IRQ+0x75/0xf0
Jan 25 11:36:15 localhost kernel: [<ffffffff8100ba53>] ? ret_from_intr+0x0/0x11
Jan 25 11:36:15 localhost kernel: <EOI> [<ffffffff812fd8ce>] ? intel_idle+0xfe/0x1b0
Jan 25 11:36:15 localhost kernel: [<ffffffff812fd8b1>] ? intel_idle+0xe1/0x1b0
Jan 25 11:36:15 localhost kernel: [<ffffffff8144384a>] ? cpuidle_idle_call+0x7a/0xe0
Jan 25 11:36:15 localhost kernel: [<ffffffff81009fe6>] ? cpu_idle+0xb6/0x110
Jan 25 11:36:15 localhost kernel: [<ffffffff81530e5a>] ? rest_init+0x7a/0x80
Jan 25 11:36:15 localhost kernel: [<ffffffff81c3c127>] ? start_kernel+0x429/0x436
Jan 25 11:36:15 localhost kernel: [<ffffffff81c3b33a>] ? x86_64_start_reservations+0x125/0x129
Jan 25 11:36:15 localhost kernel: [<ffffffff81c3b453>] ? x86_64_start_kernel+0x115/0x124
Jan 25 11:36:15 localhost kernel: —[ end trace 9af7395d78df38c8 ]—
Jan 25 11:36:15 localhost kernel: e1000e 0000:07:00.0: eth1: Reset adapter unexpectedly

Sau khi tìm kiếm trên google thì tôi thấy vài bài báo cáo bug như này  . Có vẻ như ASPM của Intel 82574L đã bị hỏng

Và giải pháp thay thế lúc này là disable ASPM của NIS,

đầu tiên, cần check xem trạng thái của ASPM đang là gì, tôi cần lấy ID của thiết bị trước (dòng số đầu tiên)

lspci -vnn | grep ‘82574’

các bạn để ý số đầu tiên ở 2 dòng là 06:00:00.0 và 07.00.0 => đây chính là ID device

Giờ check lần lượt từng device

lspci -vvvv -s 06:00.0

lspci -vvvv -s 07:00.0

các bạn chú ý đến dòng khoanh đỏ

đây là trạng thái ASPM đang được enable, giờ chúng ta phải disable nó đi,

Cách đơn giản nhất là ta gõ command sau

setpci -s 06:00.0 CAP_EXP+10.b=40
setpci -s 07:00.0 CAP_EXP+10.b=40

Nhưng với cách này chỉ là giải pháp tạm thời, nếu ta khởi động lại server sẽ mất tác dụng. Vậy ta tiền hành cách 2

vi /etc/grub.conf

Thêm

pcie_aspm=off

sau đó khởi động lại server, giờ kiểm tra lại xem ASPM đã bị disable hay chưa nhé

lspci -vvvv -s 06:00.0

Giờ bạn đã thấy nó đã được “disable” rồi.

Tôi hy vọng điều này sẽ giúp ích được cho các bạn điều gì đó :D,

Thanks, Betapcode

19 tip cho các lập trình viên trong năm 2019

Sắp bước qua năm 2019 và thế giới lập trình sẽ có nhiều điều tuyệt vời xuất hiện. Nhưng đối với nhiều developer mới, triển vọng bước vào sự nghiệp coding có thể gặp nhiều khó khăn.

Có rất nhiều công nghệ để học và rất nhiều ngôn ngữ để lựa chọn. Do đó, tôi đã soạn ra một danh sách gồm 19 tip cho các kỹ sư phần mềm vào năm 2019.

Coding vui vẻ!!

  1. Đừng nản lòng

Ngành công nghệ là một trong những ngành công nghiệp khốc liệt và biến động nhất hiện nay, và nó có thể khiến bạn không thể quyết định có nhảy vào hay không. Điều tôi cố gắng ghi nhớ mỗi ngày là mọi người, tại một thời điểm trong sự nghiệp coding của họ, đều bắt đầu tại điểm xuất phát như mình. Tất cả các nhà dẫn đầu trong ngành công nghệ này đều từng là người mới.

Có phải có một số người học nhanh hơn những người khác? Đúng vậy. Nhưng bạn không thể để điều đó ngăn cản bạn bắt đầu.

Sự nghiệp coding là rất đáng có vì một lý do tuyệt vời sau: bạn có thể tự học bất cứ điều gì trên internet … miễn phí! Và thường thì cách sống trong ngành công nghệ sẽ thoải mái hơn nhiều so với các nghề nghiệp khác.

Điều quan trọng cần ghi nhớ là: dù có rất nhiều tài nguyên ngoài kia, bạn không cần phải học tất cả mọi thứ. Hãy bắt đầu với những điều cơ bản trước.

Bước đầu tiên là quyết định xem bạn muốn bắt đầu sự nghiệp của mình là front-end (giao diện người dùng của ứng dụng bạn tương tác) hay back-end (làm việc với dữ liệu). Khi bạn chọn được công việc thích hợp với mình, hãy bắt đầu với những điều cơ bản.

Nếu bạn chọn con đường phát triển là front-end, hãy tìm hiểu về HTML, CSS và JavaScript. Đừng coi những kỹ năng này là điều hiển nhiên. Mặc dù thoạt nhìn nó có vẻ đơn giản, nhưng một kiến ​​thức vững chắc về nền tảng phát triển web sẽ đưa bạn đến với vai trò đầu tiên là Kỹ sư phần mềm. Đa số các công ty muốn thấy một ứng cử viên có kỹ năng nền tảng vững chắc hơn là sự hiểu biết khá tốt về một framework/library phổ biến.

Nếu bạn quyết định đi theo con đường phát triển là back-end, hãy thử một ngôn ngữ như Python hoặc Java. Đây là những kỹ năng rất cần thiết trong ngành công nghệ.

Nhưng đừng nản lòng. Sẽ có những ngày mà bạn cảm thấy hoàn toàn choáng ngợp. Nhưng nghĩ tới việc mọi người đều bắt đầu hành trình như bạn đã làm sẽ khiến mọi thứ trở nên dễ dàng hơn.

  1. Học cách đọc và giải mã code

Một trong những kỹ năng mà tôi đã có được khi tôi bắt đầu hành trình coding của mình là khả năng đọc code của các developer khác. Đây là một kỹ năng thực sự quan trọng vì nó cho phép bạn làm việc hiệu quả trong nhiều cơ sở code khác nhau.

Bạn không cần phải biết tất cả các sắc thái của ngôn ngữ lập trình để giải mã code đó đang làm gì.

Có nhiều cách để học cách đọc code. Kiểm tra một số dự án nguồn mở. Đọc qua tài liệu và nguồn code và xem bạn có thể xác định rõ điều gì đang xảy ra hay không. Bạn sẽ dần dần bắt đầu nhận ra rằng bạn đang cải thiện hơn mỗi ngày, và thậm chí bạn có lẽ mở được một PR!

Học cách phân tích code và xác định xem nó có được viết theo cách hiệu quả nhất hay không.

Học cách đọc và xem lại code là một kỹ năng tốn thời gian, nhưng rất đáng nỗ lực.

  1. Tìm phương pháp học tập phù hợp

Mọi người học theo nhiều cách khác nhau. Một số ghi nhớ kiến thức tốt nhất khi họ viết code. Một số khác lại học tốt nhất bằng cách đọc hoặc xem video.

Tôi thích xem các hướng dẫn online và đọc tài liệu để bổ sung kiến thức.

Tôi không phải là người có thể khởi động một ứng dụng sandbox và mã hóa nó. Tôi thích làm theo hướng dẫn và sau đó mở rộng các ý tưởng.

Hãy tìm phương pháp học tập của bạn. Thử các tài nguyên và platform khác nhau.

Một khi bạn tìm thấy phương pháp học tập phù hợp, bạn sẽ thấy rằng bạn học hiệu quả hơn nhiều.

  1. Tham gia vào cộng đồng

Tôi đã không tham gia cộng đồng công nghệ online cho đến khi tôi đã coding được 3 năm. Điều này đã mang lại cho tôi một bất lợi rất lớn.

Tôi đã vật lộn rất nhiều với suy nghĩ rằng mình không có năng lực làm gì và thấy khó giữ được động lực. Nhưng khi tôi tìm thấy một cộng đồng các developer trên Twitter và các trang blog, tôi đã đầu tư nhiều hơn vào việc học.

Tìm một dự án nguồn mở. Tweet các dự án coding của bạn. Đẩy các dự án của bạn lên GitHub. Tìm cách tham gia và bạn sẽ nhanh chóng phát triển mối quan hệ mật thiết hơn với coding.

  1. Cân bằng lý thuyết với thực hành

Để trở thành một lập trình viên hiệu quả, bạn phải hiểu lý thuyết đằng sau những mô hình nhất định (ở một mức độ nhất định).

Ví dụ: nếu bạn muốn hiểu tại sao một vòng lặp lồng nhau không có hiệu suất như hai vòng lặp trong cùng một phạm vi, bạn cần hiểu ký hiệu Big-O.

Chúng ta đang sống trong thời đại mà bạn không cần tấm bằng Khoa học Máy tính để thành công trong ngành công nghệ. Điều đang được nhắc tới là, một số khái niệm được dạy trong một bằng cấp CS là vô cùng có giá trị rồi (như là các thuật toán, phân tích thời gian chạy, v.v.).

Bạn không cần phải học tất cả các lý thuyết khoa học máy tính, nhưng bạn nên hiểu lý thuyết tại sao giải pháp này tốt hơn một giải pháp khác.

  1. Đừng so sánh bản thân với người khác

Sự nghiệp của bạn sẽ không bao giờ đi theo con đường chính xác như một developer khác. Bạn không nên so sánh mình với người khác.

Bạn là bản thể độc nhất và các kỹ năng bạn có được sẽ chỉ phù hợp với bạn.

Vì một trong những người dẫn đầu ngành công nghệ đang học Ruby on Rails không có nghĩa là bạn phải học theo. Tìm các kỹ năng mà khiến bạn hào hứng với lập trình và học chúng với khả năng tốt nhất của bạn.

Không có khung thời gian dự kiến ​​liên quan đến việc học một công nghệ. Như tôi đã đề cập trong tip 3, mọi người học theo những phương pháp khác nhau và vì vậy họ học ở các mức độ khác nhau.

Chỉ vì bạn mất ba tháng để học JavaScript không có nghĩa là bạn là developer tệ hơn người học nó trong vòng một tháng.

  1. Tham gia vào các dự án nguồn mở

Cộng đồng nguồn mở đang phát triển mạnh mẽ, vậy tại sao không tham gia? Nếu bạn cần một cách để tăng cường kỹ năng đọc code của mình, hãy tìm một dự án nguồn mở!

Bạn có thể bắt đầu với cộng đồng GitHub!

Bạn thậm chí có thể bắt đầu dự án nguồn mở của riêng bạn! Tôi đã thành lập dự án nguồn mở của riêng mình tên là Coding Coach vào tháng 9 năm ngoái và đó là một trải nghiệm mở mang tầm mắt.

Nếu bạn muốn tham gia và học hỏi từ một số developer tuyệt vời, hãy thử xem!

  1. Hãy thoải mái với việc không thoải mái

Ngành công nghệ thay đổi liên tục, và điều đó có nghĩa là luôn có một kỹ năng mới để học hỏi.

Mặc dù điều này nhìn qua có lẽ đáng sợ, nhưng nó cũng tạo cho chúng ta nhiều cơ hội học một công nghệ mới (làm thế nào bạn có thể chán được chứ?!).

Cách tốt nhất để phát triển các kỹ năng coding của bạn là giải quyết các công việc khiến bạn sợ hãi. Bạn có thể làm được điều này bằng cách tình nguyện hoàn thành một nhiệm vụ đầy thách thức, hoặc trong thời gian rảnh rỗi với các công nghệ mới.

Bạn phải trở nên thoải mái với việc không thoải mái. Không phải lúc nào bạn cũng có tất cả các câu trả lời.

  1. Đừng ngại đặt câu hỏi

Cuối cùng, bạn sẽ gặp phải một vấn đề mà bạn không biết cách giải quyết. Và không có câu trả lời nào trên Stack Overflow!

Điều quan trọng là nhận ra khi bạn cần hỏi để được giúp đỡ. Nếu bạn đã cố gắng giải quyết vấn đề và không còn cách nào khả thi, đã đến lúc tìm sự giúp đỡ.

Cần sự giúp đỡ không làm bạn trông yếu đuối; đây là điều mà tôi vẫn đang đấu tranh

Nếu bạn đang dành hàng giờ đồng hồ cố gắng để hiểu lý do tại sao biến của bạn lại bị ReferenceError, hãy tìm sự trợ giúp.

  1. Bạn cần những người ủng hộ mình

Coding rất khó. Sẽ có những ngày bạn cảm thấy không muốn làm Kỹ sư phần mềm nữa.

Do đó, bạn phải có những người tin tưởng vào bạn. Tìm một nhóm bạn thân hoặc gia đình, những người sẽ xây dựng lòng tự trọng cho bạn, và nói lời tạm biệt với những người không làm vậy.

  1. Tập trung vào một việc một lần

Thực nhiên nhiều việc một lần là cách nhanh nhất để khiến cho mọi việc có kết quả không tốt. Con người không thể đa nhiệm một cách hiệu quả.

Chọn một việc để tập trung vào một lần thôi. Học tập hoặc hoàn thành công việc, chọn một trong hai rồi làm với khả năng tốt nhất của bạn. Sau khi hoàn thành, chuyển sang việc tiếp theo.

Đừng cố gắng làm nhiều việc cùng một lúc.

  1. Có cái nhìn tổng thể – làm thế nào để tất cả các công nghệ này khớp với nhau

Bạn sẽ học được nhiều công nghệ khác nhau trong suốt sự nghiệp coding của mình. Và có thể bạn sẽ cực kỳ mơ hồ khi xác định công nghệ nào giải quyết nhiệm vụ nào.

Tôi thích vẽ sơ đồ cho các vấn đề phức tạp. Nếu tôi được giao nhiệm vụ xây dựng một ứng dụng, tôi sẽ chia nó thành các miền. Ví dụ: tôi biết tôi cần HTML, CSS và JavaScript ở front-end, có lẽ tôi sẽ quyết định sử dụng React làm thư viện JS. Và có lẽ, nếu tôi cần ứng dụng này để mở rộng quy mô, tôi sẽ chọn Redux để quản lý trạng thái.

Tìm hiểu các cách sử dụng tốt nhất cho các công nghệ khác nhau. Khi nào bạn sẽ chọn cái này thay vì cái khác? Làm thế nào để chúng khớp với nhau?

Đây là những câu hỏi quan trọng bạn nên học cách trả lời.

  1. Tìm toolbox của bạn – tool nào là tốt nhất cho công việc?

Ngày nay không thiếu các công cụ có sẵn cho các developer. Tôi có thể kể tên ít nhất năm IDE mà tôi đã  từng làm việc trong quá khứ.

Số lượng công cụ có sẵn có thể cực kỳ lớn. Hãy thực hiện một vài nghiên cứu, rồi quyết định công cụ nào phù hợp với bạn. Một số câu hỏi được đặt ra là:

  • Công cụ này có đang được duy trì?
  • Có cộng đồng developer nào đang phát triển mạnh mẽ đang sử dụng nó không (trong trường hợp bạn cần trợ giúp)?
  • Để đặt cấu hình nó khó như thế nào?
  • Tích hợp tool có gây ra tác động tiêu cực đến hiệu suất không?
  • Tôi có thể giải quyết công việc mà không cần tool không?

Một tool tồn tại không có nghĩa là bạn cần sử dụng nó.

  1. Duy trì cân bằng công việc / cuộc sống

Bạn không cần phải dành cả ngày để coding. Thực ra, làm như vậy sẽ không tốt cho sức khỏe bạn.

Bạn phải duy trì sự cân bằng giữa công việc và cuộc sống, nếu không bạn có thể phải chịu hậu quả của sự kiệt sức.

Nếu bạn làm điều gì đó từ lúc thức dậy cho đến khi đi ngủ, bạn sẽ rất dễ bực bội.

Hãy dành thời gian cho bản thân và các sở thích khác của mình, và bạn sẽ duy trì được mối quan hệ tốt đẹp với việc coding.

  1. Tìm hiểu những điều cơ bản của thiết kế

Nếu bạn đang xây dựng một ứng dụng hướng tới người dùng, bạn nên biết những điều cơ bản về thiết kế. Tôi không nói rằng bạn cần học cách sử dụng Sketch hoặc Adobe Illustrator, nhưng học những điều cơ bản về UX Design sẽ mang lại tác động tích cực đến các ứng dụng của bạn.

Bạn không thể cho rằng người dùng sẽ sử dụng ứng dụng của bạn theo cách mà bạn làm. Trên thực tế, bạn không nên đưa ra bất kỳ giả định nào về hành vi của người dùng.

Hiểu lý do đằng sau các nguyên tắc UI nhất định để xác định giải pháp tốt nhất cho ứng dụng của bạn.

Ví dụ, người ta thấy rằng các nút vuông thực sự tốt hơn cho người dùng so với các nút tròn, vì chúng chứa nhiều pixel hơn.

Tìm hiểu những điều cơ bản này và bạn có thể chắc chắn rằng ứng dụng web của bạn sẽ nổi bật.

  1. Tìm một người hướng dẫn

Tìm một người hướng dẫn khá khó nhưng lại rất cần thiết. Bạn có thể học được những kỹ năng vô giá từ lời khuyên của họ và thực hành coding một cách tốt nhất.

Không bao giờ quá khó khăn khi hỏi một người trong ngành, người mà bạn ngưỡng mộ, để hướng dẫn cho bạn. Điều tồi tệ nhất họ có thể nói là không!

Và khi thời gian trôi qua, hãy nhớ đánh giá lại quá trình hướng dẫn của bạn để đảm bảo rằng việc này có lợi cho cả bạn và người hướng dẫn.

  1. Xây dựng một portfolio và resume tuyệt vời

Portfolio và resume là thứ gây ấn tượng đầu tiên đối với một nhà tuyển dụng trong quá trình phỏng vấn. Nó rất quan trọng vì đó là cả bộ mặt của bạn.

Sửa lỗi chính tả và ngữ pháp. Và đảm bảo rằng mọi thứ được định dạng nhất quán và phù hợp.

Nếu bạn muốn biết thêm chi tiết về việc viết một resume tuyệt vời, hãy xem bài viết trên blog trước đây của tôi.

  1. Thất bại nhanh chóng và thất bại thường xuyên

Thất bại là chủ quan. Nếu bạn mắc lỗi, hãy học hỏi từ nó. Đừng phạm sai lầm tương tự  lần hai. Chỉ vì một cái gì đó “thất bại” không có nghĩa là nó không có giá trị gì.

Người thành công nhất trong lịch sử đã tạo ra rất nhiều thành phẩm, nhưng chỉ một số ít trong đó được công nhận.

Bạn không cần phải code các website đẹp ngay từ bắt đầu cho đến khi kết thúc cho mỗi dự án bạn phát triển. Tập trung vào công nghệ cơ bản, và bạn có thể quan tâm đến việc làm cho nó trông đẹp hơn sau này.

  1. Cứ tiếp tục

Sẽ có ngày bạn muốn từ bỏ coding. Đừng. Đây là một công việc khó khăn và mọi người đều mắc phải hội chứng kẻ mạo danh (suy nghĩ rằng bản thân là kẻ tầm thường và không có năng lực làm gì).

Bạn không cô đơn. Và coding sẽ trở nên dễ dàng hơn theo thời gian.

Làm mỗi ngày, và bạn sẽ ổn thôi.

Cứ tiếp tục.

Nguồn: https://techtalk.vn/19-tip-cho-cac-ky-su-phan-mem-trong-nam-2019.html

Bài gốc: https://dev.to/emmawedekind/19-tips-for-software-engineers-in-2019-4okm

[flutter] Hưỡng dẫn cài đặt flutter trên MacOs

Hi, Đề bắt đầu 1 project sử dụng flutter thì việc đầu tiên chúng ta phải biết là cài đặt và thiết lập môi trường để dev, bài hưỡng dẫn này mình sẽ thực hành trên Macos 10.13

  1. Cài đặt

Đầu tiên ta truy cập website của flutter và tải file SDK xuống

Sau khi tài SDK xuống và giải nén ra 1 folder tên là flutter, chú ý: folder này bạn để chỗ nào cũng được miễn lấy được đường dẫn để cấu hình PATH. ở đây mình để là /Users/betapcode/workspace/flutter

Rồi, giờ việc tiếp theo là cấu hình đường dẫn PATH, các bạn mở terminal lên

cd ~/

vi .bash_profile

Thêm đoạn này vào cuối file , reset lại terminal

export PATH=”/Users/betapcode/workspace/flutter/bin:$PATH”

Tiếp, mở lại terminal gõ :

flutter

mà ra giao diện như này là đã xong bước 1

Giờ gõ tiếp

flutter doctor

đề flutter tự động kiểm tra các gói cài đặt trên máy bạn đã phù hợp và đầy đủ hay chưa

2. Một số lưu ý

a. Editor

Sử dụng 1 trong 2 loại editor trên để code fluter là Android Studio hoặc VS Code (bạn nên update lên version mới nhất) 

Cài plugin Flutter và Dart trên cả 2 Editor

b. cài đặt cocoapods

sudo gem install cocoapods

c. Update sdkmanager

Link tham khảo: https://flutter.io/get-started/editor/#vscode

Thanks !

@betapcode

[Vuejs] Hưỡng dẫn deploy Vue project lên Netlify

Hi !

Hôm nay mình sẽ hưỡng dẫn các bạn deploy 1 project Vuejs lên 1 host miễn phí là Netlify. Mục đích là để test sản phẩm của các bạn trên môi trường thật hoặc show cho bạn bè góp ý

Phạm vị bài viết giành cho những bạn begin tập làm quen , còn các cao thủ rồi thì mình không dám comment 🙂

Được rồi, đầu tiên ta truy cập website của netlify.com , đăng ký 1 tài khoản ở đây (mình sẽ không hưỡng dẫn phần đăng ký tài khoản nhé, vì nó rất dễ rồi 🙂 )

Sau khi đăng ký thành công bạn sẽ vào giao diện quản lý app của netlify (chú ý mục khoanh đỏ)

Chọn “New site from Git” , nó sẽ đưa bạn đến 1 giao diện bắt bạn authen với tài khoản github của mình để có thể kéo được repo từ github sang, ngoài ra nó còn hỗ trợ (Gitlab, Bitbucket), ở đây mình sử dụng repo của github

Tiếp đến bạn search tên project trên github và chọn nó

Ở bước này, bạn cần chú ý 2 dòng

Build Command: npm run build 

  • Đây là command sẽ chạy build project vuejs cho bản production, khi bạn bấm deploy site

Publish directory: thường thì sẽ là thư mục “dist” của bạn, nhưng có 1 số trường hợp khi deploy lên nó sẽ báo “Page not found” vì thế chỗ này bạn có thể để trống và bấm “Deploy site”

Giờ site của bạn đã được tạo ra, nó sẽ tự động sinh ra cho bạn 1 chuỗi domain mặc định cho ta (ta có thể chỉnh sửa domain này trong phần Site settings). Bấm nút “Site settings(1) để vào phần này

Ok, giờ bạn muốn deploy lại project thì phải làm sao. Bạn vào menu “Deploy

Nếu bấm “Deploy settings” thì sẽ đi vào phần chỉnh sửa lại config ở khi khởi tạo project ở trên mục (1)

Ở đây, ta chọn “Trigger deploy” sẽ hiện ra 1 popup thông báo , click “Clear build cache” để đảm bảo clear hết cache cũ đi

Rồi, giờ chọn “Trigger deploy” và ngồi đợi thôi 😀

Khi nào màn hình console báo “Finished processing…” và không có thông báo lỗi nào xảy thì bạn đã deploy thành công

Giờ chỉ việc mở url domain lên và kiếm tra thành quả thôi.

Nguồn source của mình: https://github.com/betapcode/pizza-planet

Url tham khảo: https://wizardly-fermi-031bb3.netlify.com/

Chúc các bạn thành công !

@betapcode