- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CSS
- TMIL
- LEVEL 2
- First Project
- 에러핸들링
- TWIL
- 프로그래머스
- Refactoring
- java
- sql
- Docker
- TIL
- javascript
- 아고라스테이츠
- 코어 자바스크립트
- Err-Handling
- 리팩터링 2판
- react
- 알고리즘
- mongodb
- 배포
- 오늘도 개발자가 안된다고 말했다
- LEVEL 1
- Git
- MariaDB
- LEVEL1
- 코딩테스트
- typescript
- CRUD
- 면접을 위한 cs 전공지식 노트
성장에 목마른 코린이
TIL 220726 (커리어 스킬 page 72 - 76) 본문
오늘의 계획
1. 오전 10:00 - 12:00 + 저녁시간 활용해서 이력서 2군데 제출하기 / 기업 분석
2. 오후 12:00 - 1:00 책읽고 중요한 내용 기록하기!
3. 오후 2:00 - 4:00 TypeScript 노마드코더 강의 듣기
4. 오후 4:00 ~ 5:00 함께코치
5. 오후 5:30 - 7:00 운동 가기
6. 오후 8:00 - 9:30 코드스테이츠 이력서 특강
7. 오후 10:00 ~ 자기 계발
책에서 읽은 중요한 내용!
기술을 가르치는 방법:
1. 큰 그림: 이 기술로 무엇을 할 수 있는가?
무엇을 모르는지 깨닫는 것이 이번 단계의 목표이다.
지식이 부족한 부분을 확인해두어서 나중에 그 기술을 배워야 할 때 어디를 봐야 할지 알게 한다는 뜻이다.
도구의 사용법 까지는 몰라도 된다.
하지만 도구의 존재조차 모른다면 매우 불리하게 시작하는 거라고 볼 수 있다. (page 72-73)
2. 시작하는 법
때로는 어떻게 시작해야 할지를 모른다는 게 기술 학습의 가장 큰 장애물이 되기도 한다.
하지만 이 단계를 거쳐여만 '실행'으로 이어질 수 있으므로 이 단계에서 느끼는 고통을 최대한 덜어주기 위해 노력한다.
진입 장벽이 너무 높으면 책이나 튜토리얼을 보았다고 해도 그렇게 복잡한 일을 직접 해볼 엄두가 안 난다. (page 74)
3. 최고의 효과를 거두기 위해 알아야 할 20퍼센트
나는 세상의 거의 모든 일을 20퍼센트의 원인이 80퍼센트의 결과를 생산한다고
하는 파레토 법칙으로 설명할 수 있다고 본다.
책이나 튜토리얼은 대부분 참조 설명서처럼 쓰여 있기 때문에 핵심적인 20퍼센트를 강조해서 알려주지 않는다.
하지만 어떤 기술이든 직접 써보면 무엇을 가장 많이 쓰는지 금세 깨닫는다.
관계형 데이터베이스의 모든 기능을 배우려고 시간을 낭비하기보다
SELECT 문을 쓰는 법, 테이블을 조인하는 법 등 핵심적인 20퍼센트를 배우는데 집중하라. (page 74-75)
4. 전문가가 쓴 글 읽기
기술 발전에 도움이 될 마지막 방법은 그 기술을 이미 잘 알고 있는 전문가가 쓴 글을 열심히 읽는 것이다.
나는 새로운 기술을 배울 때 매일 30분씩 그 기술과 관련된 다양한 블로그 포스트를 읽는다.
때로는 전문가의 의견을 듣는 것만으로 혼자서는 얻기 어려운 깊은 통찰을 얻는다.
배우려는 기술을 전문가가 실제로 어떻게 사용하는지 연구하라. (page 75-76)
5. 연습, 연습 연습
이제 마지막 한 가지를 알려주겠다. 연습하라.
어떤 기술이든 발전시키려면 시간이 든다.
무엇이든 잘하려면 연습을 많이 해야 한다.
시간이 너무 오래 걸리는 것 같아도 답답해하지 마라.
특히 발전이 정체되고 있다고 느낄 때 조심해야 한다.
확실한 계획과 명확한 목표를 따라가는 한 기술은 분명 발전할 것이다.
꾸준히 해나가는 데 의의가 있으니 그저 끈기 있게 정진하라. (page 76)
TypeScript 강의
타입스크립트는 자바스크립트를 기반으로 만들어진 언어인데,
자바스크립트가 가지고 있는 여러 문제를 해결하고 보완하기 위해 만들어진 언어입니다.
그 뿐만 아니라 더 나은 개발자가 될 수 있게 해주고, 더 나은 개발자 경험을 제공합니다.
타입스크립트는 개발자를 멍청한 실수로부터 보호해주고, 더 생산적인 개발자가 되게 도와줍니다.
Javascript 에서는 배열에 false를 더하는데, 배열이 사라지고 string 값으로 변하는 아이러니한 상황이 벌어집니다.
다른 언어에서는, 말도 안되는 일이지만 자바스크립트는 이런 말도 안되는 상황을 허용합니다.
이상한 예이긴하지만, 자바스크립트가 개발자를 이해해주려고 엄청난 노력을 하고 있다는 걸 보여줍니다.
이번엔 현실적으로 일어날 수있는 예시를 보여줍니다.
입력값이 두 개인데 하나밖에 안보냈는데도 코드가 실행되서 NaN이라는 값을 리턴합니다,
하지만 최악의 에러는 런타임 에러입니다.
드디어 자바스크립트가 에러를 보여줬습니다. hello 함수가 존재하지 않기 때문인데요.
하지만 이건 코드를 실행하기 전에 최소화시킬 수 있는 에러 중 하나입니다.
자바스크립트는 이게 에러가 날 거라는 걸 몰라서 그냥 코드를 실행시켰지만,
이상적으로는 코드가 실행하기 전에, nico 객체에는 hello() 라는 함수가 없다고 알려주는게 가장 좋습니다.
이렇기 때문에 자바스크립트를 사용하면 코드에 어떤 에러가 있는지,
다른 사람이 개발자한테 알려주게 됩니다.
타입스크립트를 사용하면 이런 걱정을 할 필요가 없습니다.
첫번째 예시인, 첫배열+boolean 같은 코드를 작성할 수 없을뿐더러
두번째 예시인, divide함수에도 이 함수에 입력값이 두 개가 필요하다는 걸 알 거고 알려줄 겁니다.
마지막 예시에서도 nico.hello()라는 코드를 엔터를 치기도 전에 VS Code가 런타임 에러가 일어날 거라고 경고합니다.
name: string 처럼 어떤 타입이 들어가야할지 :를 이용해 지정해 줄 수 있습니다. (선택적 타입)
그리고 age뒤에있는 ?는 age가 있어도되고 없어도된다 라는 의미로 사용됩니다.
?가 없으면 age가 없는 nico때문에 에러가 나겠죠.
Player라는 타입을 함수에도 지정해줄 수 있습니다.
name:string을 가지는 playerMaker도 Player이라는 타입을 가지게 되는거죠.
이렇게 하지않으면, player 타입을 가지지 않은 nico는 age를 갖지 못하게되는겁니다.
이번엔 readonly라는 속성인데, 이 속성을 부여하면 말그대로 읽는것 밖에 되지않고
위의 예시처럼 push를 할 수 없습니다.
이번엔 tuple이라는 것인데, 예시에서 볼 수 있다시피 각 배열에 특정 type을 부여해주면
다른 type를 넣는것이 허용되지 않습니다.
any라는 속성은 말그대로 아무거나 들어갈 수 있다는 것인데,
이를 통해 typescript의 모든 보호장치를 비활성화 시킵니다.
예시에서 볼 수 있다시피 배열과 boolean을 더해주는데도 에러가 뜨지 않습니다.
unknown은 말그대로 알려지지않았다는 뜻입니다.
알려지지 않았기 때문에 에러가 뜨고있는 걸 볼 수가 있죠.
void는 아무것도 리턴하지 않는 함수입니다.
아무것도 리턴하지 않고 있기 때문에 a.toUpperCase()가 작동하지 않고있죠.
never은 함수가 절대 return하지 않을 때 발생합니다.
위의 예시처럼 에러를 보내고싶을때 사용됩니다.
혹은 위의 예시처럼 절대 실행되지 않는 코드 / 작동하지 않는 코드에 never이라고 표시됩니다.
코드스테이츠 이력서 특강
경험이 있다 없다는 중요하지 않다. 경험을 통해 무얼 배웠고, 어떻게 성장했냐가 중요하다.
직무역량에서 좀 중요하다고 생각하는 부분은 양도 많게, 소제목은 좀 더 구체적으로 적어야 한다.
내 이력서에 현재 이런식으로 지금 되어 있는데, 어떻게 개발했는지, 어떻게 기획했는지에 대한 내용이 없다.
경력 소개서는 링크로 연결만 하지말자!
기타활동이 경력사항보다 많으면 안된다!
신입의 경우 이력서, 포트폴리오를 잘 써야한다.
나는 현재 포트폴리오 작성을 아직 안해놓은 상태인데 얼른 해야겠다는 생각이 든다.
면접은 빈틈이 없어야한다. 빈틈이 있으면 떨어진다.
다음 주엔 면접 특강이 있는데, 열심히 듣고 잘 정리해야겠다!
오늘의 회고
요즘 들어 책을 읽고, 여러 특강을 듣고, 열심히 생활하는 다른 이들의 블로그들을 보면서
반성을 많이하게 된다.
나 자신이 조금씩 어떻게 나아가야하는지 보이면서, 아직은 갈길이 멀다라고 느끼는 요즘이다.
그리고 오늘 깨달은 것은 책과 특강을 많이 듣고 보는 것도 중요하지만,
그런 것들을 듣고 실천하는 것이 더 중요하다고 여겨진다.
그래서 원래 계획은 매일매일 하루에 꾸준히 책을 읽고 정리하는 것이였는데,
어느정도 실천해야겠다는 마음이 들면 실천을 다할 때까지는
책 읽고 정리하는 것을 살짝 내려놓을 예정이다.
다음 주에 코딩테스트도 있고, Socket I.O로 채팅기능도 구현해야하고, TypeScript도 얼른 공부하고 싶은데
이제부터 하나씩 구현하고 책에 있는 내용들을 실천하는 것에 좀 더 중점을 둬볼 예정이다.
채팅기능 구현이 너무 오늘 하기 싫어서, 노마드 코더의 TypeScript 강의를 들어봤습니다.
오늘 1/3 정도의 분량을 진행한 것 같은데요, 정말 유익했고 정리하면서도 재밌었습니다.
이번주에 이것만 진행한다면 문제 없이 끝낼 수 있겠지만, 다른 할일 들도 있으니
병행하면서 진행하면 다음주 까진 끝낼 수 있을 것 같네요!
책도 한책만 계속 읽으니 너무 지루했는데, 여러 책을 돌려 읽으니 재밌는 것처럼
새로운 스택도 지루해질때쯤 다른 스택을 공부해보니 재밌습니다 ㅎㅎ
'Today I Learned' 카테고리의 다른 글
TIL 220728 (오늘도 개발자가 안 된다고 말했다 page 42-53) (0) | 2022.07.28 |
---|---|
TIL 220727 (클린 코드 page 12 - 15) (0) | 2022.07.27 |
TIL 220725 (리팩토링 2판 page 65 - 85) (0) | 2022.07.25 |
TIL 220722 (코어자바스크립트 page 1-35) (0) | 2022.07.22 |
TIL 220721 (오늘도 개발자가 안 된다고 말했다 page 1-41) (0) | 2022.07.21 |