freeCodeCamp의 Javascript 알고리즘 및 데이터 구조 과정을 통한 나의 여정

승리! 자바스크립트 인증서



(But more importantly, some good programming practice.)



다른 사람의 샘플 코드를 조회하지 않는 것이 이 프로젝트에서 가장 중요하다는 것을 알았기 때문에 최소한의 코드가 포함되었습니다. 속담의 벽에 머리를 부딪히는 행위는 프로그래밍 개념을 배우는 데 있어 무엇보다 중요했습니다.

그래서 시간이 오래 걸렸습니다.

저는 2016년에 freeCodeCamp에 다시 가입했고 코딩에 익숙해지기 위해 사용한 몇 안 되는 도구 중 하나였습니다. 그러나 지난 몇 년(2019-2021)이 되어서야 웹 개발과 컴퓨터 프로그래밍을 배우는 것에 대해 아무렇지도 않게 진지하게 생각하게 되었습니다. 그리고 저는 Codecademy에서 Udemy, EdX, MITx, Google 및 YouTube에 이르기까지 수많은 리소스를 계속 사용했습니다.

작년에 저는 부트캠프에 매료되어 거의 한 커플에 등록할 뻔했습니다. 하지만 인터넷에서 무료로 사용할 수 있는 지식의 폭과 깊이를 알았을 때 가격표를 정당화할 수 없었기 때문에 반대 결정을 내린 것에 감사합니다.

그래서 freeCodeCamp로 돌아왔습니다.

Javascript Algorithms and Data Structures 자료를 통해 언어의 일부와 프로그래밍 메커니즘을 배울 수 있는 짧은 강의에 감사했습니다. 그러나 그 이상으로 프로젝트는 진정한 테스트가 존재한다고 말할 수 있는 곳이었습니다. 그들은 항상 쉽게 통과할 수 없을 만큼 충분히 도전적이었지만, 이해하기 불가능하지도 않았습니다.

우아? 로마 숫자 변환기



최종 프로젝트에서 나는 내 자신의 아마추어 능력을 확실히 볼 수 있지만 코드가 아무리 복잡하더라도 작동하는 코드의 스릴을 과대평가하기는 어렵습니다. 로마 숫자 변환기 문제의 경우 주어진 숫자를 로마 숫자로 변환하는 작업을 받았습니다. 지금 내 코드를 되돌아보면 내 솔루션을 함께 붙인 로마 숫자의 다양한 반복을 포함하는 거대한 개체를 따르는 긴 if 문이 엉망입니다.

내 일부는 해결책에 도달하는 더 우아한 방법이 있다는 것을 알고 있지만 외부의 도움을 구하지 않고 혼자서 이 문제를 해결하는 것이 진정으로 학습이 이루어진 곳이었습니다.

let rules={
    0: "",
    1: "I",
    2: "II",
    3: "III",
    4: "IV",
    5: "V",
    6: "VI",
    7: "VII",
    8: "VIII",
    9: "IX",
    10: "X",
    20: "XX",
    30: "XXX",
    40: "XL",
    50: "L",
    60: "LX",
    70: "LXX",
    80: "LXXX",
    90: "XC",
    100: "C",
    200: "CC",
    300: "CCC",
    400: "CD",
    500: "D",
    600: "DC",
    700: "DCC",
    800: "DCCC",
    900: "CM",
    1000: "M",
    2000: "MM",
    3000: "MMM"
  }


댓글 ftw! 금전 등록기 프로젝트



댓글이 중요한거 압니다. 나는 항상 내 자신의 최고의 지식을 따르지 않습니다. 5개의 프로젝트를 진행하는 동안 저는 실제로 댓글을 잘 작성하는 능력이 점차 향상되었습니다. 부부에게는 (적어도 내 생각에는) 코드를 통해 메모를 하지 않아도 될 만큼 간단했습니다. 특히 전체 프로젝트가 20~30줄로 완료될 수 있는 경우에는 더욱 그렇습니다. 그러나 금전 등록기 문제로 인해 나는 내 자신의 이익과 모범 사례를 위해 논평했습니다.

금전 등록기는 완료하는 데 이틀이 걸렸고 세 번 완전히 다시 시작했습니다. 문 밖에서 댓글을 달고 의사 코딩을 시작했다면 내 수고가 줄어들었을 것입니다. 그럼에도 불구하고 나는 결국 승리했고, 나의 실화는 나의 배움에 도움이 되었다.

솔루션에 약간의 console.log-ing이 남아 있는 것을 포함하여 결승선에 도달하는 데 89줄의 코드가 필요했습니다. 이 솔루션에 도달하는 더 우아하고 압축된 방법이 있을 것이라고 생각하지만 저는 for 루프의 기능적 지구에 기반을 둔 마음을 가진 단순한 사람입니다.

console.log("=====================")
  console.log("Original Amounts: ")
  console.log("=====================")
  console.log("price:", price, "\ncash:", cash, "\ntotal in drawer:", total, "\nchange:", change)
  console.log(`cash in drawer:`, cid)
  console.log("=====================")
  console.log("Computations:")
  console.log("=====================")


테이크아웃


  • 댓글은 중요합니다. 그것들을 사용하지 않는 것은 자신을 때리는 것입니다.
  • 우아함은 더 많은 공유 가능한 코드를 만듭니다. 더러운 코드는 여전히 작동할 수 있습니다.
  • 코드에서 벗어나면 의도가 날카로워집니다. 잠은 정신을 날카롭게 한다.
  • 프로젝트는 무언가를 진정으로 배울 수 있는 유일한 방법입니다.

  • 좋은 웹페이지 즐겨찾기