QUESTIONS? CALL: (+84) 24 666 026 12

HiveTech Vietnam (Technology Solutions - Original Ideas - Shared Expertise)

HiveTech Vietnam (Technology Solutions - Original Ideas - Shared Expertise)

HiveTech is a technology company focus on AI and big data technologies for educational purposes.

T (+84) 24 666 026 12
Email: contact@hivetech.vn

HiveTech JSC
No. 3 Thanh Cong, Ba Dinh, Ha Noi

Open in Google Maps
  • HOME
  • SERVICES
  • OUR COMPANY
  • PARTNERS
  • CONTACT
  • RECRUITMENT
FREEQUOTE
  • Home
  • Articles posted by Thao Nguyen
  • Page 4
2021-01-12

HIVETECH-ER WAY OF LIVE

Wednesday, 24 June 2020 by Thao Nguyen












Tại HiveTech mỗi nhân sự khi đến với chúng mình đều được chia sẻ rất kỹ về văn hóa doanh nghiệp, đặc biệt là phần giá trị sống. Vậy Tại sao chúng mình lựa chọn “Self-motivation + Self-discipline” là giá trị sống mà chúng mình theo đuổi?

Các nghiên cứu chỉ ra rằng sự phát triển của cá nhân nếu xuất phát từ nội lực tự thân thì sẽ đi rất bền vững, mà động lực và kỷ luật tự thân lại là những thành tố quan trọng tạo nên nội lực tự thân. Sau đây chúng mình sẽ chia sẻ cụ thể hơn về hai thành tố này.

Đầu tiên là Self motivation – Động lực tự thân, khởi nguồn những ý nghĩ sâu sắc về chính mình

HiveTech tin rằng người có động lực tự thân là người có khả năng làm việc gì cần phải làm, luôn tìm thấy được một lý do và sức mạnh để tiếp tục tiến lên ngay cả khi đối mặt với những khó khăn, biết nắm bắt cơ hội và thể hiện cam kết với những gì muốn đạt được.

Bốn yếu tố tạo nên động lực động lực tự thân mà chúng mình luôn nhắc nhở là: 

– Personal drive to achieve: mong muốn cải thiện hoặc đáp ứng các tiêu chuẩn nhất định;

– Commitment: cam kết với các mục tiêu cá nhân hoặc tổ chức; 

– Initiative: sẵn sàng hành động theo cơ hội  

– Optimism: khả năng tiếp tục và theo đuổi mục tiêu khi đối mặt với thất bại hay còn được gọi là khả năng phục hồi.

Thứ hai là Self discipline – Kỷ luật tự thân, tạo ra những hành động có tính cam kết để hiện thực những ý nghĩ muốn đạt được cho bản thân mình 

 Chúng mình coi kỷ luật tự thân là biểu hiện của sức mạnh nội tâm và sức mạnh bền bỉ, thực hiện có điều độ trong những gì cần làm, trở nên kiên nhẫn hơn, khoan dung, hiểu biết và cẩn trọng hơn mọi việc. Chính vì vậy, kỷ luật tự thân sẽ giúp HiveTech-er chịu được áp lực và ảnh hưởng bên ngoài để có khả năng kiểm soát cuộc sống của chính mình, đặt ra các kế hoạch và thực hiện từng bước cụ thể để đạt được mục tiêu đã đề ra. 

 Sáu yếu tố để tạo nên một người có kỷ luật tự thân: 

– Acknowledge Your Weaknesses: chấp nhận điểm yếu của bản thân 

– Establish a Clear Plan: thiết lập mục tiêu rõ ràng 

– Remove the Temptations When Necessary: loại bỏ các cám dỗ khi không cần thiết

– Practice Tolerating Emotional Discomfort: thực hành chịu đựng (chấp nhận/ khoan dung) những cảm xúc khó chịu 

– Visualize the Long-Term Rewards: Hình dung (tưởng tượng) phần thưởng trong dài hạn  

– Recover From Mistakes Effectively: Phục hồi (Khắc phục) một cách hiệu quả những sai lầm 

HiveTech luôn coi con người là chìa khóa quan trọng của sự phát triển trong tổ chức, vì vậy chúng mình lựa chọn giá trị sống tuy rất chiều sâu nhưng vô lại cùng thách thức. Nếu các bạn cũng đang tìm một tổ chức như vậy để tôi rèn năng lực làm việc, nghị lực cá nhân thì hãy đến và khám phá ngôi nhà HiveTech cùng chúng mình nhé!

CultureHiveTechSefl_motivaition
Read more
  • Published in Uncategorized
No Comments

JDBC – QUẢN LÝ TRANSACTION

Monday, 08 June 2020 by Thao Nguyen










I. Giới thiệu

Chắc hẳn bạn đã nghe nhiều tới transaction trong lập trình, hệ điều hành… vậy transaction là gì và nó được ứng dụng trong các dự án thực tế ra sao. Sau đây, mình sẽ chia sẻ kỹ hơn với anh em khái niệm và demo một chương trình thực tế sử dụng Transaction.

II. Nội dung:

1. Transaction là gì

  • Là một tập hợp các hành động cần thực hiện để một giao dịch hoàn thành. Một là tất cả các hành động đó được hoàn thành hoặc không có hành động nào được hoàn thành.
  • Trong database: một hoặc nhiều câu lệnh SQL thực hiện nối tiếp nhau để hoàn thành một giao dịch
    • Tất cả các lệnh đều được thực hiện – Commit
    • Hoặc không có lệnh nào được thực hiện – Rollback
  • Ví dụ:
    • Về tài khoản ngân hàng. Tôi(A) muốn chuyển 100$ tới một tài khoản B
    • Theo các bước sau: trừ 100$ tài khoản A và cộng 100$ vào tài khoản B
    • Hệ thống lỗi, mất mạng, mất điện: A bị trừ 100$ và B không được cộng 100$. Số tiền đó có thể bị lạc trên vũ trụ
    • Để giải quyết vấn đề trên, bước trừ tiền & cộng tiền ta nhóm vào một “transaction”
    • Bước trừ tiền thành công, nhưng bước cộng tiền thất bại ta phải Rollback bước trừ tiền tài khoản A. Như vậy trạng thái tài khoản A trở về ban đầu
    • Cả 2 bước đều thành công, ta thực hiện Commit > Giao dịch thành công
  • Chú ý:
    • Mặc định database connection là auto-commit set = true
      • Ta cần tắt auto-commit: myConn.setAutoCommit(false);
    • Dev có thể điều khiển được commit / rollback
      • “myConn.commit();”  hoặc  “myConn.rollback();”
  • Code mô phỏng xử lý transaction
  • Bước 1: ta set auto-commit là false
  • Bước 2: ta thực hiện một transaction gồm một hoặc nhiều lệnh SQL(insert, update, delete)
  • Bước 3: (tùy chọn) xác nhận với user để thực hiện giao dịch trên
  • Bước 4: Nếu ok thực hiện lưu dữ liệu vào db, ko thì thực hiện rollback

2. Demo chương trình có sử dụng transaction

  • Công nghệ & công cụ:
    • Java SE 1.8
    • Mariadb 10.2
    • Mariadb java client 2.6.0
    • SQL client: Dbeaver
    • IDE: Intellij
  • Source code: link github
  • Ví dụ: thực hiện một Transaction
    • B1: Delete all HR employees
    • B2: Set salaries to $300,000 for all Engineering

Database

  • Bảng employess
  • Code demo tóm tắt:
  • Kiểm tra trong database:
12-14: Tìm đến class driver của Mariadb trong Mariadb java client và tạo một kết nối tới database
16: Setting auto-commit = false
19-20: Thực hiện truy vấn lấy employees có department là HR / Enginering và hiện thị kết quả
22-23: Thực hiện B1
26: Thực hiện B2
30: Helper method: hỏi user có muốn thực hiện Transaction đó hay không. Y > true / N > false
31-39: User đồng ý, thực hiện giao dịch trên >  Transaction COMMITTED Nếu không thực hiện rollback > Transaction ROLLED BACK
41-43: In ra thông tin HR / Enginnering sau khi thực hiện các kết quả trên
* Kết quả lần 1: Không lưu transaction  
Salaries BEFORE  
Show Salaries for Department: HR
Doe     | John   | HR     | 55000.00
Williams          | David | HR     | 120000.00
Adams | Carl    | HR     | 50000.00
Davis   | John   | HR     | 45000.00  

Show Salaries for Department: Engineering
Public  | Mary  | Engineering   | 75000.00
Johnson           | Lisa    | Engineering   | 50000.00
Brown | Bill     | Engineering   | 50000.00
Fowler | Mary  | Engineering   | 65000.00  

>> Transaction steps are ready.  

** After execute DELETE & UPDATE  

Show Salaries for Department: HR  

Show Salaries for Department: Engineering
Public  | Mary  | Engineering   | 300000.00
Johnson           | Lisa    | Engineering   | 300000.00
Brown | Bill     | Engineering   | 300000.00
Fowler | Mary  | Engineering   | 300000.00  

Is it okay to save? Y/N: n  

—–>> Transaction ROLLED BACK.  

Salaries AFTER

Show Salaries for Department: HR
Doe     | John   | HR     | 55000.00
Williams          | David | HR     | 120000.00
Adams | Carl    | HR     | 50000.00
Davis   | John   | HR     | 45000.00  

Show Salaries for Department: Engineering
Public  | Mary  | Engineering   | 75000.00
Johnson           | Lisa    | Engineering   | 50000.00
Brown | Bill     | Engineering   | 50000.00
Fowler | Mary  | Engineering   | 65000.00  

* Kết quả lần 2: Lưu transaction  

Salaries BEFORE

Show Salaries for Department: HR
Doe     | John   | HR     | 55000.00
Williams        | David | HR     | 120000.00
Adams | Carl    | HR     | 50000.00
Davis   | John   | HR     | 45000.00  

Show Salaries for Department: Engineering
Public  | Mary  | Engineering   | 75000.00
Johnson           | Lisa    | Engineering   | 50000.00
Brown | Bill     | Engineering   | 50000.00
Fowler | Mary  | Engineering   | 65000.00  

>> Transaction steps are ready.  

** After execute DELETE & UPDATE  

Show Salaries for Department: HR  

Show Salaries for Department: Engineering
Public  | Mary  | Engineering   | 300000.00
Johnson           | Lisa    | Engineering   | 300000.00
Brown | Bill     | Engineering   | 300000.00
Fowler | Mary  | Engineering   | 300000.00  

Is it okay to save? Y/N: y  

—–>> Transaction COMMITTED.  

Salaries AFTER  

Show Salaries for Department: HR  

Show Salaries for Department: Engineering
Public  | Mary  | Engineering   | 300000.00
Johnson           | Lisa    | Engineering   | 300000.00
Brown | Bill     | Engineering   | 300000.00
Fowler | Mary  | Engineering   | 300000.00
  • Lệnh DELETE department = ‘HR’ và UPDATE department = ‘Engineering’ được thực hiện và lưu kết quả vào một bảng tạm trên database trước khi những thay đổi đó được commit
  • Khi không muốn save transaction, chọn n
  • Những thay đổi triên đã ROLLED BACK về trạng thái ban đầu
  • Kiểm tra trong database:
* Lệnh DELETE và UPDATE và có tác dụng tên bảng tạm trên database
* Sau khi commit thì những thay đổi đó có tác dụng vào bảng employees
  • Tùy vào cơ chế và cấu mỗi database, khi thực hiện các lệnh UPDATE, DELETE, INSERT sẽ dược thực thi vào một hệ thống bảng tảm trước khi áp dụng vào bảng chính
  • MariaDB mặc định commit mode là ON
  • Ta có thể cài chỉnh được commit mode trực tiếp trên database hoặc trên SQL Client

III. Kết Luận:

  • Ta hiểu thế nào là transaction
  • Cách xử lý transaction sử dụng JDBC
  • Hiểu cơ bản database cấu hình commit mode

Trần Mạnh Chung

Read more
  • Published in Posts
No Comments

TRÁI NGÀNH CHUYỂN NGHỀ VÀ BÉN DUYÊN VỚI HIVETECH

Wednesday, 03 June 2020 by Thao Nguyen










Chào anh em, tôi là một Đép (Fresher), tuổi đời thì ngót nghét ba chục, nhưng tuổi nghề thì mới hơn 1 năm. Hôm nay tôi sẽ chia sẻ với anh em hành trình từ một người trái ngành bắt ngang sang làm Coder và bén duyên với nghề Developer tại HiveTech như thế nào.

1. Tôi đã chuyển ngành như thế nào?

Chia sẻ với anh em lịch sử của tôi, tôi đã có gần 10 năm làm công việc khác xa với ngành CNTT. Sau một khoảng thời gian dài làm công việc cũ, tôi thấy tính cách mình không phù hợp và nhận ra nhu cầu nhân lực lớn trong ngành CNTT, đặc biệt là lập trình viên.

Tôi quyết định học tại một trung tâm để bổ sung kiến thức nền và các kỹ năng cần thiết cho nghề Dev trong khoảng gần 5 tháng tập trung. Tôi biết rằng khoảng thời gian học ngắn như vậy khó có thể xây vững nền tảng như các bạn được đào tạo trong trường lớp chính thống, nhưng đây là con đường gần nhất cho một thanh niên ngoại đạo như tôi bước vào thế giới của anh em Coder.

Kết thúc khóa học, chúng tôi được trung tâm giới thiệu tham gia buổi Job Fair với các công ty công nghệ lớn nhỏ để phỏng vấn trực tiếp. Tại đây, tôi may mắn được phỏng vấn trực tiếp với đại diện của HiveTech và nghe thêm chia sẻ thẳng thắn của anh ấy về quá trình phát triển tư duy – kỹ năng trong nghề.

Sau buổi Job Fair đó, tôi tin rằng HiveTech là nơi mà tôi muốn đến làm việc và phát triển sự nghiệp dài hạn. Cuối cùng, may mắn cũng mỉm cười với tôi, ngày nhận được offer tôi đã không chần chừ mà gửi mail xác nhận “đồng ý” ngay và luôn.

2. Tôi bắt đầu tại HiveTech ra sao?

Tôi bắt đầu vào làm việc tại công ty HiveTech từ vị trí Intern và được training chi tiết lại những thứ cơ bản như Design Pattern. Nói thật, tuy là cơ bản nhưng đối với tôi lại là lần tiếp xúc đầu tiên, tôi cũng chắc là những bạn tầm trình độ như tôi cũng ít người biết đến mấy kiến thức chi tiết này.

Tôi được anh em trong công ty giúp đỡ và training tổng kết ra một bảng xương xương thế này thôi:

Trong thời gian training, tôi lại may mắn được join ngay vào một dự án của công ty. Tại thời điểm đó, tôi chủ yếu chỉ biết về framework spring MVC, spring Boot, những cấu trúc tôi chưa biết đến đã xuất hiện như struts, servlet, jsp… Mặc dù, cấu trúc này tôi có được giới thiệu trong thời gian học ở trung tâm nhưng lại không biết nó có thể ứng dụng ra thực tế tuyệt vời đến như vậy. Vì vậy, anh em khi học các framework có sẵn thì nên dành thời gian hiểu về nguồn gốc và lý do tại sao nó xuất hiện. 

Ví dụ : Khi bạn sử dụng CrudRepository, JpaRepository là các Spring Data chúng rất tiện và nhanh sử dụng nhưng điều đó dẫn đến một khuyết điểm là bị mất nền tảng tại sao cái này được tạo ra.

Khi đó, nên sử dụng JDBC để hiểu căn bản.

Cũng may mắn dự án tôi được tham gia cũng toàn sử dụng những công nghệ đã được training, nên dễ dàng tổng hợp kiến thức nền để có thể sử dụng được các framework mới.

Một ví dụ nữa cho anh em về hibernate framework: giúp đơn giản hóa sự phát triển của ứng dụng, chỉ cần tạo trong model add các thuộc tính vào là ta có được bảng trong data.

Chưa chắc nhiều bạn biết khi tạo một bảng với câu lệnh cơ bản như sau:

Vừa rồi là hành trình của tôi từ những ngày bập bõm bước vào nghề cho đến khi học hỏi và thực hành nhuần nhuyễn một số công cụ cơ bản vào các dự án thực tế tại HiveTech.

3. Kinh nghiệm cho các anh em Newbie

Các bạn từng học cùng trung tâm với tôi hay nói “Học để biết chứ sau này không làm đâu”, nhưng với tôi đây là một nhận định khá chủ quan. Mình phải hiểu căn bản, có nền tảng thì mới làm nhanh – làm tốt được, chứ biết nửa vời – làm nửa vời thì chẳng công ty nào muốn tuyển luôn ấy.

Tóm lại cái quần lại, các framework được tạo ra đều có lý do của nó, mà nó còn được đúc kết từ các thế hệ kinh nghiệm, từ những Dev giỏi nó là thành tựu, là kết quả tuyệt vời. Ta nên học cách sử dụng nhưng cũng không nên lạm dụng nó, hiểu được các framework đó có các interface nào và được tạo ra từ đâu, làm được điều đó ta phải nắm chắc căn bản anh em nhé, không xôi thịt ngay và luôn được đâu. 

Trên đây là các ý kiến riêng của cá nhân tôi – một Đép mới vào nghề, anh em cho góp ý để thêm ít gạch đá về xây nhà. Hy vọng anh em có ý định chuyển nghề như tôi cứ vững tin, kiên nhẫn học hỏi từ đồng nghiệp nhé.

Đủ lượng, chất sẽ thay đổi thôi. 

Chúc anh em thành công! 

Đoàn Văn Hiệu

Read more
  • Published in Posts
No Comments

MỐI QUAN HỆ BIỆN CHỨNG GIỮA JAVASCRIPT VÀ JAVA?

Monday, 01 June 2020 by Thao Nguyen











Phần I: Nguồn gốc của các câu chuyện: nơi tất cả bắt đầu

1. Nguồn gốc hình thành

Dự án cho Java bắt đầu vào năm 1991 và ban đầu được gọi là Oak. Tuy nhiên, tên này lại được đăng ký cho một công ty khác, vì vậy những người sáng tạo đã thay thế gọi nó là Java (mang nghĩa như trong cà phê, có nghĩa là được tiêu thụ với số lượng lớn) và phát hành phiên bản đầu tiên vào năm 1995. Java hiện được sử dụng để viết ứng dụng nhúng, ứng dụng web, ứng dụng doanh nghiệp và là nền tảng được sử dụng rộng rãi nhất thế giới.

JavaScript là ngôn ngữ Run on Client’s Browser được Brendan Eich và Netscape phát triển vào năm 1995 với mục đích ban đầu như là 1 file script để giúp làm linh hoạt hơn các chức năng giao diện và xử lý thông tin từ phía khách hàng trước khi gửi về Server. JavaScript với tên ban đầu là Mocha, nhưng vì lý do marketing mà vào phiên bản Netscape 2.0 thì Mocha xuất hiện với tên là JavaScript.

2. Sử dụng khi nào và ở đâu?

Là một ngôn ngữ của mục đích chung, Java sẽ là lựa chọn đầu tiên nếu bạn đang tìm cách tạo phần mềm và ứng dụng doanh nghiệp cho các hệ thống Android. Nó khá phổ biến trong lĩnh vực tài chính và thương mại, cũng như các ứng dụng khoa học và dữ liệu lớn. Ví dụ, các hệ thống xử lý ngôn ngữ tự nhiên thường được viết bằng Java. Nguyên tắc WORA cũng khiến nó hoàn hảo trong các hệ thống nhúng, chẳng hạn như thẻ Java được sử dụng trong thẻ SIM.

JavaScript được tạo ra cho web và mục đích chính của nó là giúp bạn tạo các trang đông, mang tính tương tác. JavaScript vẫn là sự lựa chọn tốt nhất cho nhu cầu front-end, phù hợp với thương mại điện tử, tùy chỉnh giao diện người dùng (UI) và tạo các công cụ đơn giản khác nhau.

Như vậy, chúng ta có thể khẳng định Java và JavaScript hoàn toàn không có chung nguồn gốc, với vai trò và tính năng riêng biệt. Vì thế chúng chắc chắn không phải anh em song sinh như chúng ta nghi ngờ, nhưng liệu chúng có những mối liên hệ khác không? Hãy cùng tìm hiểu phần 2 nhé!

Phần II: Mối quan hệ khác?

1. Điểm tương đồng

Tuy hoàn toàn khác nhau nhưng Java và JavaScript vẫn có số nét giống nhau ở cả 2 ngôn ngữ lập trình này như sau:

  • Cả Java và JavaScript thường được sử dụng nhiều nhất trong các ứng dụng phía máy khách
  • Cả Java và JavaScript đều sử dụng cú pháp C
  • JavaScript sao chép một số quy ước đặt tên của Java.

2. Tính độc lập

Một điểm khác biệt lớn giữa Java và JavaScript là Java là ngôn ngữ lập trình hoàn toàn độc lập. Điều này có nghĩa là nó có thể được sử dụng một mình trên bất kỳ hệ điều hành nào: tất cả những gì bạn cần là một máy ảo Java virtual machine. Bạn có thể tải xuống và cài đặt nó trên máy tính miễn phí. Không có nó, bạn không thể chạy được Java trên máy tính của mình.

JavaScript, mặt khác, được sử dụng trên các trình duyệt web. Ngày nay, không có máy tính nào là không có trình duyệt web cả. Tuy nhiên, điều này cũng có nghĩa là hiệu suất của JavaScript phụ thuộc rất nhiều vào HTML và CSS. Về cơ bản, HTML chứa cấu trúc của một trang web, CSS cho phép bạn thao tác tạo kiểu và JavaScript giúp tạo các chức năng. Một cấu trúc phi chức năng là vô dụng, và các chức năng không có bất kỳ cấu trúc nào, cũng là một mớ hỗn độn.

Bạn có thể chạy Java trong trình duyệt không? Có và không. Nếu bạn đã sử dụng web hơn một vài năm, bạn có thể nhớ thời gian bạn phải tải xuống và cài đặt một trình duyệt Java để xem bất kỳ yếu tố tương tác hoặc động nào. Chúng được gọi là Java applet và được sử dụng tương đối rộng rãi. Tuy nhiên, bây giờ chúng gần như tuyệt chủng. Vì HTML5 cung cấp cơ hội để nhúng phương tiện trực tiếp vào trang web của bạn, nên không cần các applet của bên thứ ba mà còn có thể không an toàn. Do đó, Java không bao giờ thiếu đối với người dùng trình duyệt.

3. Khía cạnh hiệu suất

Khi bàn luận về Java và JavaScript về khía cạnh hiệu suất, điều đầu tiên chúng ta cần nắm bắt không phải là tốc độ. Có một sự khác biệt trong chính cách chúng thực hiện. Cả Java và JavaScript đều hướng đối tượng. Điều này có nghĩa là nhà phát triển phải giải quyết các đối tượng và mối quan hệ của chúng – giả sử, tính kế thừa. Tuy nhiên, nguyên tắc khác biệt chính: Java là ngôn ngữ được biên dịch (complied) và JavaScript là ngôn ngữ được diễn giải (interpreted).

Trần Đức Anh



Read more
  • Published in Uncategorized
No Comments

JUNIOR VÀ SENIOR KHÁC NHAU NHƯ THẾ NÀO?

Monday, 25 May 2020 by Thao Nguyen











Các công ty thường có tiêu chí đánh giá nhân sự theo cấp bậc Internship, Fresher, Junior, Senior để phân loại trong tuyển chọn và phát triển nhân sự. Trong đó, có thể hiểu Fresher và Internship là những bạn mới vào nghề, có học tập hoặc tìm hiểu kiến thức chuyên môn về công việc, chưa biết công việc đó sẽ làm gì, và dùng kiến thức hay công cụ gì để làm nó. Việc của các bạn ấy khi đi làm là tìm hiểu và học cách sử dụng công cụ nào cho việc gì trong dự án tham gia và hướng tới sử dụng nhuần nhuyễn chúng. 

Nhưng  Junior và Senior lại là những kỳ cựu đã có kinh nghiệm thực tế, thâm niên làm việc, và chủ động sử dụng kiến thức kỹ năng kinh nghiệm cho dự án. 

Mỗi công ty sẽ có cách phân chia cấp bậc, tiêu chí và cách đánh giá riêng cho mỗi level. Riêng tại HiveTech chúng mình hiện tại đang chia làm 6 cấp bậc (intern, fresh, junior, pre – senior, Senior, leader) và 4 tiêu chí để đánh giá.  Bài viết này, chúng mình sẽ chia sẻ với bạn về các tiêu chí đánh giá của 2 level quan trọng đánh dấu quá trình phát triển sự nghiệp của mỗi nhân viên HiveTech là Junior và Senior: 

1. Về tiêu chí

Chúng mình có 4 tiêu chí: 

Thứ nhất là tư duy: là tập hợp những suy nghĩ và niềm tin hình thành thói quen tư duy của một con người. Chúng mình dựa vào thái độ – niềm tin; cách thức suy nghĩ, đối diện và giải quyết các vấn đề trong công việc mà nhân sự biểu hiện để đo lường. 

Thứ hai là kỹ năng: là cách thức vận dụng kiến thức để thực hiện một nhiệm vụ mang tính kỹ thuật hoặc giải quyết vấn đề trong công việc, nghiệp vụ, giao tiếp hay quản lý. Kỹ năng được hình thành qua đào tạo, học hỏi và thực hành.

Thứ ba là khả năng: là việc vận dụng thuần thục tư duy và kỹ năng để thực hiện công việc được giao trong thời gian với độ sai lệch theo giới hạn quy định.

Cuối cùng là kết quả: là cái đạt được, thu được trong quá trình tiến triển của một công việc hay dự án. Nếu bạn có tư duy, kỹ năng, khả năng nhưng kết quả công việc không đạt yêu cầu thì tất cả các nỗ lực bạn cố gắng đều không được đo lường và công nhận.

2. Về yêu cầu cho mỗi level 

Trên đây là những tiêu chí và yêu cầu cho mỗi level tại HiveTech, hy vọng bài chia sẻ này sẽ giúp các bạn có góc nhìn rộng hơn về cách đánh giá nhân sự tại HiveTech nói riêng và ngành công nghệ thông tin nói chung.

Read more
  • Published in Posts
No Comments

Senior .Net Developer

Friday, 22 May 2020 by Thao Nguyen









The Job

  • Write well-structured, efficient, clean and testable source code
  • Write and perform Unit Test for your code
  • Enhances and maintains operational websites
  • Assists in technical scoping and quotes during the pitch process
  • Coordinates plans and revises appropriate effort to meet changing project needs and requirements
  • Keeps project manager well informed of status of development effort.
  • Resolves and/or escalates issues in a timely fashion
  • Trains/mentors developer other team members if and when required

Your Skills and Experience

Requirements:

  • 3+ years’ experience working in Software Development
  • Solid experience in Agile development environments
  • Solid experience with ASP.NET MVC, MSSQL.
  • Experience with OOP, design patterns, software development best practices
  • Proficient understanding of code version tools, such as Git, SVN
  • Experience in JavaScript, jQuery, HTML
  • Good teamwork and high responsibility
  • Well-versed in writing structured, well-documented, maintainable, and clean code;
  • Excellent in problem-solving and analytical skills.
  • Experience in leading and coaching at least one software engineering team on various projects.
  • Strong understanding of standard Software Engineering processes, Testing, and Agile methodology.

Nice to have:

  • Knowledge of CMS and other web based system
  • Experience in Search Engine Optimization (SEO) is Plus
  • Has good English reading, writing and/or speaking skill

Why You’ll Love Working Here

Be in the culture:

  • Working, learning from a team of aspiring and ambitious developers
  • Everyone that having attitude of continuous learning, moving forward the self-motivation and self-act personality
  • Research and challenge your self with the latest techs and current trend in the world:  AI, IoT, VR&AR…
  • Receive specialized training for improving your knowledge and skill.
  • Attend training programs on social skills, team building and project management (Agile Scrum…)
  • Sharing and getting consults about your drives, career and self-improving plan
  • Abroad training program and working on-site

Benefits:

  • Competitive salaries, based on skill and experiences.
  • Great working hour: 8:45am – 6pm. From Monday to Friday
  • Meal allowance
  • End of year bonus
  • Social, medical and unemployment insurance fully covered as of requirement of Viet Nam’s Labour Code
  • Yearly medical check
Read more
  • Published in Recruitment
No Comments

Senior Full-stack Java Web Developer

Tuesday, 12 May 2020 by Thao Nguyen










The Job

  • Developing new technology and products in the field of education.
  • Building application on various platform including web and mobile, for domestic and abroad customers.
  • Giving creative solutions for transforming and upgrading client technologies. 

Your Skills and Experience

Requirements:

  • Graduate from university/college/any practical instituion with technology-related degree
  • More than 3 years of working experience in a company
  • Responsible, dedicated and has the ability to work under pressure
  • Ability to research, catching up and learning new technology
  • We appreciate candidates who want to bond and develop a stable, lasting career with our company
  • Understanding and applying Java-language to real-world project
  • Experience with Java core, Java web, HTML, CSS, Javascript, Websocket, Hibernate, JPA, HTML5/CSS3, Spring MVC, Spring Boot, Spring Security, Struts.
  • Has experience working with in Web, Web application and RESTful Api
  • Fundamental understanding of OOP, design pattern and using them in real-world project
  • Fundamental understanding of SQL and SQl statements
  • Experience working with database like MySQL, Postgre SQL, MS SQL Server, Oracle, Cassandra, MongoDB
  • Experience working with Application Server like Tomcat, Glassfish
  • Experience working with source code management tool like: SVN, Git

Nice to have:

  • Good teamwork and ability to express yourself clearly
  • Knowledge of Microservices architecture
  • Ability to use testing tools for performance, security, CI/CD
  • Ability to work with Javascript Framework (VueJS, Angular, ReactJS)
  • Has knowledge and  liking for AI, Big Data, IoT
  • Knowledge of AOP (Aspect Oriented Programming), FP (Functional Programming), MP (Meta-programming)
  • Has good English reading, writing and/or speaking skill

Why You’ll Love Working Here

Be in the culture:

  • Working, learning from a team of aspiring and ambitious developers
  • Everyone that having attitude of continuous learning, moving forward the self-motivation and self-act personality
  • Research and challenge your self with the latest techs and current trend in the world:  AI, IoT, VR&AR…
  • Receive specialized training for improving your knowledge and skill.
  • Attend training programs on social skills, team building and project management (Agile Scrum…)
  • Sharing and getting consults about your drives, career and self-improving plan
  • Abroad training program and working on-site

Benefits:

  • Competitive salaries, based on skill and experiences.
  • Great working hour: 8:45am – 6pm. From Monday to Friday
  • Meal allowance
  • End of year bonus
  • Social, medical and unemployment insurance fully covered as of requirement of Viet Nam’s Labour Code
  • Yearly medical check
Read more
  • Published in Recruitment
No Comments

DATABASE THỰC CHIẾN

Monday, 27 April 2020 by Thao Nguyen










Phần I: Cấu trúc bảng và cách viết truy vấn

1. Giới thiệu công nghệ sử dụng trong một dự án mình tham gia

Mình tham gia dự án cho một ngân hàng. Dự án viết một ứng dụng web để quản lý một module về khách hàng.

  • Công nghệ sử dụng: Java 1.7, Oracle Database 12G Enterprise. Framework front-end: kendoUI for jQuery 2015.
  • Trong bài viết này tập trung về:
    • Dữ liệu kendoUI cần để hiển thị data dạng Grid, Combobox, Tree List.
    • Cách viết đáp ứng yêu cầu kendoUI.
    • Bỏ qua cách Java gọi vào database để lấy dữ liệu.
  • Để cài đặt nhanh nhất dùng bản Oracle express 12G và cài SQL Client: dbForge for Oracle Express.

Qua mỗi dạng dữ liệu mình làm theo từng bước tìm từ khóa để tìm hiểu các cấu trúc bảng đó, lúc làm dự án là lần đầu biết được các kiến thức đó.

2. Front-end cần những dạng data để hiển thị

  • Dùng các component KendoUI: Grid, Tree List và Combobox
  • Trang web KendoUI: https://docs.telerik.com/kendo-ui/controls/data-management/grid/overview
  • Dạng Grid:
  • Dạng Tree:
  • Combobox:

3. Cấu trúc bảng và cách viết truy vấn

3.1. Dạng Grid

  • Yêu cầu task: Hiển thị tất cả thông tin của khách hàng.
  • Cấu trúc bảng trong database:
  • Dữ liệu hiển thị trên KendoGrid:
  • Phân tích:
    • Tên trường thường thống nhất đặt viết Hoa và cách nhau bởi dấu gạch dưới “_”, đặt đầy đủ nghĩa ví dụ “CUSTOMER_ID” – định danh cho một customer và “pre-fix” là tên bảng hoặc chữ cái đầu tiên của mỗi từ tên bảng.
    • Mỗi bảng cần phải có một trường định danh cho customer, chọn CUSTOMER_ID.
    • CUSTOMER_ID: thường dạng ID tự tăng, dùng sequence. Hoặc ID kết hợp chuỗi C01, C02.
    • Lưu trữ về giới tính dùng kiểu NUMBER(1), CHAR(1), hiện tại chưa có cách lưu nào là tối ưu nhất, mỗi cách thường có ưu và nhược điểm điểm riêng, từ khóa: “type to save gender oracle db”, tham khảo tại đây.
    • Lưu trữ ngày sinh: chọn kiểu DATE, cần kiểm tra định dạng lưu Date của Oracle Db, thường khách hàng muốn lưu trữ theo cách nước họ hay dùng, muốn đổi format ta cần dùng các hàm xử lý, kiểm tra định dạng mặc định tại đây và đây.
  • Dữ liệu bảng CUSTOMER:
  • Tạo truy vấn:
    • Format date dạng ngày/tháng/năm 12/02/1996: dùng TO_CHAR để format và chuyển đổi kiểu text. Thống nhất thường là database sẽ làm.
    • CUSTOMER_GENDER: thường bên Java tùy theo dữ liệu “f,m,o” dùng ENUM tương ứng hoặc database xử lý.hoặc client sẽ xử lý.
    • Từ khóa: “format date oracle db”, “how switch value oracle db” > cách chuyển đổi “f,m,o” về Nữ(f), Nam(m), Khác(o)

3.2. Dạng tree:

  • Yêu cầu task: Hiển thị danh sách nhân viên theo một người quản lý.
  • Khách hàng muốn hiển thị dạng tree, ấn vào tên quản lý sẽ hiển thị các nhân viên bên trong. Theo cấu trúc cty của khách hàng có nhiều cấp của quản lý.
  • Demo hiển thị trên kendoUI:
  • Phân tích:
    • Cần có filed lưu trữ thông tin cơ bản của nhân viên và cần thêm một cột để xem nhân viên đó thuộc người quản lý nào.
    • Làm thế nào có thể lưu trữ nhiều cấp quản lý.
    • Nếu khách hàng muốn thay đổi cách hiển thị:  ví dụ với cấp quản lý chỉ hiển thị First Name, cấp thấp nhất hiển thị Full Name thì làm thế nào?
  • Cấu trúc bảng: EMPLOYEE
  • Tạo truy vấn:
    • Kết quả trả về dạng: 1 Manager – * Employee, đến Maganer thức 2, dạng cấu trúc nhiều tầng, nhìn kết quả thấy được mối liên kết với nhau.
    • Lấy đầy đủ tên FULL_NAME viết hoa chữ cái đầu mỗi từ, HIRE_DATE dạng “17-JUN-2020”.
    • POSITION: dữ liệu được viết hoa, Sắp xếp theo POSITION: CEO  vị trí 1 và FULL_NAME
  • Đánh giá: truy vấn này đã phức tạp hơn
    • Dùng function có sẵn của Oracle DB:
      • Xử lý khoảng trắng TRIM()
      • Viết hoa chữ cái đầu INITCAP()
      • Viết hoa UPPER(),
      • Lồng Function trong function
      • Định dạng DATE
      • Sắp xếp theo giá trị có sẵn DECODE()
    • Dùng từ khóa mới START WITH, ORDER SIBLINGS BY, CONNECT BY PRIOR cho cấu trúc dạng tree.
  • Từ khóa: “upper first character oracle db”, “custom-order-in-oracle-sql”, “oracle db tree struct”, “Hierarchical Queries Oracle db”
  • Hiển thị trên kendoTreeList:

4. Tổng hợp

  • Với các dạng bảng và yêu cầu của khách hàng, ta phải hiểu yêu cầu của task, rồi tưởng tượng dạng bảng thế nào, sau đó theo từ khóa được nghĩ ra rồi tìm kiếm trên Google.
  • Yêu cầu phức tạp câu truy vấn không đơn giản chỉ SELECT từ một bảng, phải “cook” dữ liêu theo cách mong muốn.
  • Biết dùng các hàm “build-in” của database, tùy từng loại database có những hàm xử lý text, number, dùng regex, tương tự nhau. Biết dùng các hàm đó & có thể lồng “fun-in-fun”
  • Hiểu được một framework Front-End hoạt động, cách sử dụng document, sử dụng tool.

Trần Mạnh Chung

Read more
  • Published in Technology
No Comments

HAPPY BIRTHDAY TO HIVETECH VIETNAM

Friday, 27 March 2020 by Thao Nguyen










Một dòng sông không có thác ghềnh sẽ trở thành dòng sông êm đềm nhưng dòng thời gian mà thiếu đi những mốc son dấu ấn thì sẽ trở thành vô vị. Một năm, một khoảng thời gian không đủ dài để viết nên lịch sử nhưng đã có ý nghĩa lớn lao để đánh dấu mốc son trưởng thành của một tập thể, một công ty.

Ngày 28/03/2019, Công ty Cổ phần Công nghệ HiveTech Việt Nam chính thức được thành lập, đánh dấu trên thị trường công nghệ thông tin Việt Nam có một đứa con mới chào đời.

Nhân ngày sinh nhật, HiveTech đã có một bữa tiệc thân mật giữa toàn thể thành viên trong đại gia đình HiveTech. Không khí bữa ăn diễn ra vô cùng ấm cúng với những tiếng cười nói, những tiếng chúc mừng sinh nhật đầy ý nghĩa của tất cả các thành viên tham gia.

Bắt đầu bữa tiệc kỷ niệm là lời chúc mừng của anh Ngô Thành Lê – Chủ tịch HĐTV, anh đã nhấn mạnh những thành tựu đạt được của công ty sau 1 năm và không quên cảm ơn sự hợp tác, giúp đỡ của các đối tác, khách hàng và sự đóng góp của toàn thể nhân viên để HiveTech có được những thành quả ngày hôm nay.

Mỗi một năm qua đi, con người đều lớn hơn, trưởng thành và mạnh mẽ hơn. HiveTech cũng vậy, mỗi một thành viên HiveTech đều luôn luôn nỗ lực để hoàn thiện bản thân, hoàn thiện sản phẩm, dịch vụ của Công ty nhằm mang đến cho khách hàng, đối tác những giá trị thiết thực nhất, hiệu quả nhất, tất cả mọi người cùng chung vai sát cánh không kể khó khăn để cùng hoàn thành mục tiêu chung.

Chặng đường 1 năm đã khép lại và HiveTech sẽ còn đi tiếp trên con đường của mình với rất nhiều thử thách mới. Chúng ta cùng hy vọng rằng, bằng sự cố gắng nỗ lực của tất cả nhân viên, HiveTech sẽ nhanh chóng trở thành một trong những công ty phần mềm hàng đầu của Việt Nam.

Read more
  • Published in Posts
No Comments

HIVETECH CHÚC MỪNG NGÀY QUỐC TẾ PHỤ NỮ 08/03

Friday, 06 March 2020 by Thao Nguyen










“Gửi các cô gái của chúng tôi!
Đồng gửi chị em nhà HiveTech
Có vài điều chúng tôi muốn nhắn
Nhân một ngày Hà Nội cuối xuân.

Cuộc đời này có lúc bão giông,
Chỉ mong chị em luôn rạng rỡ
Sống hết mình thỏa ước đam mê
Tự tin vững bước trên đường đời.

Nếu một ngày em thiếu kiên cường,
Hãy nhớ rằng HiveTech vẫn ở đó
Lắng nghe, thấu hiểu và đoàn kết
Can trường thẳng mũi vươn biển khơi.
“

Happy Women’s Day

Trong không khí se se lạnh của mùa xuân, chị em HiveTech háo hức đón chào ngày kỷ niệm lớn nhất dành cho phái đẹp đó chính là ngày Quốc tế Phụ nữ mùng 8 tháng 3.
Đây cũng là dịp để anh em trong công ty được tôn vinh và tự hào về vai trò, vị trí cũng như tầm quan trọng của chị em trong gia đình HiveTech.

From HiveTech with love

Được sự quan tâm của lãnh đạo công ty và các “đấng mày râu”, anh em trong công ty đã tổ chức chúc mừng và tặng hoa cho các chị em, với ý nghĩa trân trọng những đóng góp phái đẹp vào sự tồn tại, phát triển của HiveTech ngày hôm nay.

Cuối cùng, nhân ngày đặc biệt này, HiveTech xin gửi tới các chị em đang làm việc tại HiveTech cũng như các chị em là khách hàng lời tri ân tràn đầy ý nghĩa, ấm áp bên người thân. Chúc các chị em luôn mạnh khỏe, xinh đẹp, thành công trong công việc và cuộc sống.

Read more
  • Published in Posts
No Comments
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Recent Posts

  • FRONT END DEVELOPER (HTML/CSS)

    1. Mô Tả Công Việc Cắt giao diện website từ fil...
  • File upload trong Spring

    Trong quá trình xây dựng một ứng dụng web nói c...
  • (Fresher/Junior) NodeJS/Fullstack (NodeJS/ReactJS)

    1. Mô Tả Công Việc Tham gia các dự án outsourci...
  • Hệ cơ sở dữ liệu – MariaDB

        Trong bài viết tôi giới thiệ...
  • [Junior/Senior] Automation Tester

    1. Mô Tả Công Việc Xây dựng dụng cụ cho automat...

Recent Comments

  • hivequeen on [Tuyển Dụng] Junior/Fresher Frontend Developers (jQuery, Angular, VueJS, ReactJS) Full-time 2019
  • nguyễn viết đạt on [Tuyển Dụng] Junior/Fresher Frontend Developers (jQuery, Angular, VueJS, ReactJS) Full-time 2019

Archives

  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • September 2019
  • July 2019
  • June 2019

Categories

  • Networking
  • Posts
  • Recruitment
  • Sale
  • Technology
  • Uncategorized

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Featured Posts

  • FRONT END DEVELOPER (HTML/CSS)

    0 comments
  • File upload trong Spring

    0 comments
  • (Fresher/Junior) NodeJS/Fullstack (NodeJS/ReactJS)

    0 comments
  • Hệ cơ sở dữ liệu – MariaDB

    0 comments
  • [Junior/Senior] Automation Tester

    0 comments
  • DISCLAIMER
  • SUPPORT POLICY
  • LEGAL
HiveTech Vietnam (Technology Solutions - Original Ideas - Shared Expertise)

© HiveTech 2019 All rights reserved

TOP