Đi làm cũng được 4 năm rồi,
Senior thì người ta đề cập chủ yếu các khả năng thiết kế hệ thống, lead nhóm chứ show code cũng chỉ gọi là ở mức độ thành thạo lập trình. Tất nhiên thành thạo lập trình là không thể thiếu nếu muốn lên senior.
Công việc chính thì code C/C++ nhưng công việc riêng thì java,
Nay nhân tiện ngứa nghề ngồi code vài hàm anh em tham khảo.

Mục đích của nó là vẽ các hình mà thường hay đố nhau lúc đi học: Vẽ ngôi sao, vẽ hình bông tuyết.... và các hình khác trên console của std out.

Thôi ko nói dài nữa, show code ở dưới nhé, anh em hứng thú copy về chạy xem sao nhé.

PS1: Hiện nay đơn vị mình (Viettel) đang tuyển anh em chỉ cần có tư duy tốt các việc khác sau tuyển dụng sẽ lo, làm việc ổn định + lâu dài + lương cao cho mọi trình độ, vị trí (fresher,junior sẽ được đào tạo tận tình từ mức principle, senior)
Công việc là nghiên cứu công nghệ mới, thuật toán, xây dựng các hệ thống cntt, viễn thông, quân sự ... contact sẽ cụ thể hơn.
PS2: Với các em fresher, junior chưa đủ tự tin đi làm ngay thì contact mình, mình có các dự án phụ tại văn phòng riêng (java + web), nếu tham gia sẽ được nhận lương theo công việc, sẽ được mình trực tiếp hướng dẫn.

Kết: contact của mình: sms, call, zalo: 09 72-967.458, email: vietduc179@gmail.com

Cảm ơn anh em và đừng ngại contact nhé!

Java Code:
  1.  
  2. package z11.example;
  3.  
  4. /**
  5.  *
  6.  * @author vietduc
  7.  */
  8. public class Simple2DConsoleDrawer {
  9.  
  10.     public static class Point2D {
  11.  
  12.         public Point2D(double x, double y) {
  13.             this.x = x;
  14.             this.y = y;
  15.         }
  16.         public double x;
  17.         public double y;
  18.     }
  19.  
  20.     private static final boolean BLACK = true;
  21.     private static final boolean WHITE = false;
  22.  
  23.     private boolean[] mapData; // a map of 0 or 1 value, 0: white, 1: black color
  24.     private final int mapWidth;
  25.  
  26.     public static Point2D calculatePoint(Point2D center, double angle, double d) {
  27.         double x = center.x + d * Math.cos(angle);
  28.         double y = center.y + d * Math.sin(angle);
  29.         return new Point2D(x, y);
  30.     }
  31.  
  32.     public static Point2D calculateRotatedPoint(Point2D centerPoint, double angle, Point2D point0) {
  33.         double s = Math.sin(angle);
  34.         double c = Math.cos(angle);
  35.         Point2D point = new Point2D(point0.x, point0.y);
  36.  
  37.         // translate point back to origin:
  38.         point.x -= centerPoint.x;
  39.         point.y -= centerPoint.y;
  40.  
  41.         // rotate point
  42.         double xnew = point.x * c - point.y * s;
  43.         double ynew = point.x * s + point.y * c;
  44.  
  45.         // translate point back:
  46.         point.x = xnew + centerPoint.x;
  47.         point.y = ynew + centerPoint.y;
  48.         return point;
  49.     }
  50.  
  51.     public Simple2DConsoleDrawer(int maxDimentionSizeValue) {
  52.         mapWidth = maxDimentionSizeValue;
  53.         mapData = new boolean[mapWidth * mapWidth];
  54.     }
  55.  
  56.     private void drawPoint(double x, double y) throws Exception {
  57.         drawPoint(x, y, BLACK);
  58.     }
  59.  
  60.     private void drawPoint(double x, double y, boolean value) throws Exception {
  61.         if (x >= mapWidth || x < 0) {
  62.             throw new Exception("x value out of map!");
  63.         }
  64.  
  65.         if (y >= mapWidth || y < 0) {
  66.             throw new Exception("y value out of map!");
  67.         }
  68.         int intX = (int) Math.round(x);
  69.         int intY = (int) Math.round(y);
  70.         mapData[intY * mapWidth + intX] = value;
  71.     }
  72.  
  73.     private void drawLine(Point2D point1, Point2D point2) throws Exception {
  74.         drawLine(point1.x, point1.y, point2.x, point2.y);
  75.     }
  76.  
  77.     private void drawLine(double x1, double y1, double x2, double y2) throws Exception {
  78.         drawLine(x1, y1, x2, y2, BLACK);
  79.     }
  80.  
  81.     private void drawLine(double x1, double y1, double x2, double y2, boolean value) throws Exception {
  82.         int intX1 = (int) Math.round(x1);
  83.         int intY1 = (int) Math.round(y1);
  84.  
  85.         int intX2 = (int) Math.round(x2);
  86.         int intY2 = (int) Math.round(y2);
  87.  
  88.         int dX = intX2 - intX1;
  89.         int dY = intY2 - intY1;
  90.  
  91.         int dXAbs = Math.abs(dX);
  92.         int dYAbs = Math.abs(dY);
  93.  
  94.         /*1.45 cause character in console is not a square-symbol*/
  95.         if (dXAbs > dYAbs * 1.45) {
  96.             for (int x = intX1; x != intX2; x += dX / dXAbs) {
  97.                 double y = intY1 + Math.abs(x - intX1) * dY / (double) dXAbs;
  98.                 drawPoint(x, y, value);
  99.             }
  100.         } else {
  101.             for (int y = intY1; y != intY2; y += dY / dYAbs) {
  102.                 double x = intX1 + Math.abs(y - intY1) * dX / (double) dYAbs;
  103.                 drawPoint(x, y, value);
  104.             }
  105.         }
  106.     }
  107.  
  108.     public void printMapToStdOut() {
  109.         String lines = "";
  110.         for (int row = mapWidth - 1; row > 0; row--) {
  111.             String line = "";
  112.             for (int col = 0; col < mapWidth; col++) {
  113.                 line += mapData[row * mapWidth + col] ? "*" : " ";
  114.             }
  115.             lines += line + System.lineSeparator();
  116.         }
  117.         System.out.println(lines);
  118.     }
  119.  
  120.     public void clearMap() {
  121.         mapData = new boolean[mapWidth * mapWidth];
  122.     }
  123.  
  124.     private void drawStar(int size) {
  125.         try {
  126.             int numofedgle = 5;
  127.  
  128.             Point2D centerPoint = new Point2D(mapWidth / 2, mapWidth / 2);
  129.             Point2D[] points = new Point2D[numofedgle];
  130.             for (int i = 0; i < numofedgle; i++) {
  131.                 points[i] = calculatePoint(centerPoint, Math.toRadians(90 + 360. / numofedgle * i), size);
  132.             }
  133.  
  134.             for (int i = 0; i < numofedgle; i++) {
  135.                 drawLine(points[i].x, points[i].y, points[(i + 2) % numofedgle].x, points[(i + 2) % numofedgle].y);
  136.             }
  137.  
  138.         } catch (Exception ex) {
  139.             ex.printStackTrace();
  140.         }
  141.  
  142.     }
  143.  
  144.     private void drawSnowEdge(Point2D point1, Point2D point2, int n) throws Exception {
  145.         if (n == 0) {
  146.             drawLine(point1, point2);
  147.             return;
  148.         }
  149.  
  150.         Point2D point1x = new Point2D(point1.x + (point2.x - point1.x) / 3, point1.y + (point2.y - point1.y) / 3);
  151.         Point2D point2x = new Point2D(point1.x + 2 * (point2.x - point1.x) / 3, point1.y + 2 * (point2.y - point1.y) / 3);
  152.         Point2D point3 = calculateRotatedPoint(point1x, Math.toRadians(120), point1);
  153.  
  154.         drawSnowEdge(point1, point1x, n - 1);
  155.         drawSnowEdge(point1x, point3, n - 1);
  156.         drawSnowEdge(point3, point2x, n - 1);
  157.         drawSnowEdge(point2x, point2, n - 1);
  158.     }
  159.  
  160.     private void drawSnowSymbol(int size, int numofedgle) throws Exception {
  161.  
  162.         Point2D centerPoint = new Point2D(mapWidth / 2, mapWidth / 2);
  163.         Point2D[] points = new Point2D[numofedgle];
  164.         for (int i = 0; i < numofedgle; i++) {
  165.             points[i] = calculatePoint(centerPoint, Math.toRadians(90 + 360. / numofedgle * i), size);
  166.         }
  167.  
  168.         for (int i = 0; i < numofedgle; i++) {
  169.             drawSnowEdge(points[i], points[(i + 1) % numofedgle], 3);
  170.         }
  171.     }
  172.  
  173.     private void drawSpiral(int size, double deltaD, double deltaAngle) throws Exception {
  174.  
  175.         Point2D centerPoint = new Point2D(mapWidth / 2, mapWidth / 2);
  176.         double d = 0;
  177.         double angle = 0;
  178.         while (d <= size) {
  179.             d += deltaD;
  180.             angle += Math.toRadians(deltaAngle);
  181.             try {
  182.                 drawPoint(centerPoint.x + d * Math.cos(angle), centerPoint.y + d * Math.sin(angle));
  183.             } catch (Exception e) {
  184.  
  185.             }
  186.         }
  187.     }
  188.  
  189.     public static void main(String[] args) throws Exception {
  190.         Simple2DConsoleDrawer drawUtil = new Simple2DConsoleDrawer(200);
  191.  
  192.         drawUtil.clearMap();
  193.         drawUtil.drawStar(80);
  194.         drawUtil.printMapToStdOut();
  195.  
  196.         drawUtil.clearMap();
  197.         drawUtil.drawSnowSymbol(80, 3);
  198.         drawUtil.printMapToStdOut();
  199.  
  200.         drawUtil.clearMap();
  201.         drawUtil.drawSpiral(200, 0.05, 0.5);
  202.         drawUtil.printMapToStdOut();
  203.  
  204.     }
  205.  
  206. }