(번역)코딩을 시작할 때 알았으면 하는 65가지

65 Things I wish I knew when I started to Code

(원문) 코딩을 시작할 때 알았으면 하는 65가지.

1.Coding is about problem-solving.

코딩은 문제 해결 수단입니다.

컴퓨터 앞에 앉아 적당히 키보드 버튼을 누르는 것이 프로그래머의 일이 아닙니다.
코딩은 현실세계의 여러 문제를 해결하여, 사람들의 생활을 보다 쾌적하기 하기 위한 강력한 수단입니다.
당신에게 그런 힘이 있다면, 소중한 존재가 될 것입니다.

2.The golden rule is planning.

가장 먼저 해야 할 것은 계획입니다.

프로젝트의 성공은 계획을 세우는 것에서부터 시작됩니다.
무엇을 위한 프로젝트인가 인식하여, 골을 명확히 하시고, 과정을 계획해 봅시다.
종이와 펜 혹은 온라인 도구 무엇이든 좋습니다.
당신의 해결방법은 어떤 방식으로 그려지는지 명확히 해봅시다.

3.The content is king.

컨텐츠는 왕입니다.

컨텐츠가 없다면, 당신의 사이트는 아무 것도 없습니다.
정적 컨텐츠를 다룬다면, 그것이 적절하게 게시되어있는지 확인해봅시다.
동적 컨텐츠라면 컨텐츠를 어떤 식으로 작성할지, 혹은 주고받는 것을 상정하면서 컨텐츠를 탄탄히 한 디자인과 코드, 데이터베이스 구조를 만들어봅시다.

4.Coding should be the last phase of a project.

코딩은 프로젝트의 최종수단입니다.

초보자는 모든 프로젝트는 코딩부터 시작한다 생각할지도 모릅니다.
실은 문제를 해결하기 위해 그 전에 행한 모든 계획을 기술적으로 구현하는 것에 불과합니다.

5.You have everything at your fingertips.

손짓 하나로 뭐든지 얻을 수 있습니다.

공부를 하기 위해서 도서관에 달려가던 1950, 60년대가 아닙니다.
필요한 정보는 모두 당신의 사정거리 안에 있습니다.
인터넷과 당신의 뇌를 풀가동합시다.

6.You don’t need extreme hardware to code.

고성능 하드웨어는 필요하지 않습니다.

최첨단 프로세서, 대량의 메모리, 그리고 5대의 모니터 같은 건 필요 없습니다.
시작하기 위해서 그저 잘 돌아가는 노트북이나 컴퓨터로도 충분하죠.

7.You don’t need to be great at math.

어마무시한 수학력은 필요하지 않습니다.

영화 같은 곳에서는 종종 IQ 200의 천재가 코딩합니다.
AI, 로봇공학, 암호 등등의 분야에서는 수학이 중요합니다만 일단 시작하는 단계에서는 그저 기본적인 것만 아신다면 충분합니다.

8.Finding the right workflow is not easy.

올바른 일의 흐름을 발견하는 것은 어려운 것입니다.

개발자의 취향은 각자 다릅니다.
다양한 설정, 확장 기능을 체험해보세요.
어떤 환경이 당신에게 알맞은지 발견하기 위해서는 많은 시간이 필요할 것입니다.
하지만 그 시간은 나중에 당신의 생산성이라는 가치로 돌아올 것입니다.

9.The perfect timing is now.

지금이 최고의 타이밍입니다.

북마크 등록하는 것은 단지 뒤로 미루는 것이겠지요.
프로덕트를 시작하는 최선의 방법은 지금 시작하는 것입니다.

10.Syncing makes you mobile.

동기화를 함으로 당신은 자유로울 수 있습니다.

브라우저, IDE/텍스트에디터의 확장기능 설정을 모든 머신에 동기화해보세요.
이에 따라 어디를 가더라도 당신은 같은 환경으로 일할 수 있습니다.

11.There are multiple ways of achieving.

길은 얼마든지 있습니다.

코딩을 시작할 때까지 논리는 매우 엄격해야 하며, 결정된 패턴에 따라 코딩을 해야 한다 생각했습니다.
하지만 실제로 엄격하고 엄격한 것은 언어의 문법뿐입니다.

12.Naming things is hard.

이름 붙이는 것은 어렵습니다.

쉽게 보인다 생각하실 수 있겠지만, 프로젝트가 대규모가 될수록, 그것이 얼마나 어려운 일인가 알게 됩니다.

13.Take mistakes as lessons.

실패는 교훈입니다.

어떤 성공한 경험도 try&error가 있었다는 것을 잊지 마세요.
호기심과 끈질김이야말로 키입니다.

14.Recreating is 10X easier than writing ground-up.

다시 만드는 것이 10배는 편합니다.

기존 앱을 다시 만들면 프로젝트의 구조와 레이아웃을 대략 이해할 수 있습니다.
그러나 그 이해가 때때로 가장 어려운 부분이기도 합니다.

15.It’s important to find your niche.

스스로의 니치를 발견하는 것이 중요합니다.

니치에서 니치를 뒤진다 하더라도 그 끝을 알 수 없습니다.
흥미있는 분야를 정한 뒤에 많은 조사를 해봅시다.

16.Be curious about why things work.

무엇인가 움직이는 이유나 원리에 흥미를 가져봅시다.

그것이 어떻게 그렇게 된 것인가, 깊게 관찰합시다.
마법처럼 움직이는 무엇인가를 보기만 하지 마세요.

17.Tools are your keys to productivity.

툴은 생산성의 키입니다.

사람은 자신의 도구만큼 일을 잘할 수 있습니다.
시간을 투자해 적절한 툴 스택을 구축하면 큰 성과를 거둘 수 있습니다.

18.Passionate projects keep you going.

열정이야말로 프로젝트를 지속할 수 있는 키입니다.

취미로 하는 프로젝트는 정말 흥미가 있는 것을 골라주세요.
그 선택이 결과물에 대한 동기부여에 큰 영향을 미칩니다.

19.It’s a marathon, not a sprint.

이것은 마라톤입니다. 빨리 달리기가 아닙니다.

프로젝트 개발은 계속 진화합니다.
지속해서 학습하면서 준비합니다.
빨리 달려, 모든 걸 하려 한다면 금방 지칠 것입니다.

20.People you follow are the information you consume.

팔로우는 정보의 질에 직결합니다.

소셜미디어에서 팔로우 할 사람을 제대로 합시다.
당신의 눈에 들어올 정보의 질과 체득할 정보의 질과 직결됩니다.

21.Do not reinvent the wheel.

바퀴를 재발명은 필요하지 않죠.

프로젝트를 시작하기 전에 같은 과제를 해결하기 위해 다른 개발자들이 사용한 툴을 찾아봅시다.
대체로 해결책은 이미 존재할 것입니다.

22.It’s easy to get carried away.

자신을 잃어버리는 것은 간단합니다.

커뮤니티에 참가하는 것은 무척 좋은 일이며, 더 좋은 기술이나 모던한 UI를 알 수 있습니다.
하지만 지금 사용하고 있는 기술 스택이 낡아 빠지고 나쁜 것이 아닙니다.
새롭고 모던한 기술에 반드시 환승할 필요는 없습니다.

23.Tutorials often mislead you.

튜토리얼은 당신을 자주 이상한 곳으로 이끕니다.

튜토리얼은 대체로 애초부터 최적화되어있는 코드로 코딩합니다.
그 코드와 당신 스스로 적은 코드를 비교해 보면, 당신의 의욕을 잃어버리겠죠.
당신의 코드는 시간을 갈아 만든 것치고는 깨끗하지 않은 허술한 코드이기 때문입니다.
튜토리얼은 어디까지나 코드의 좋은 부분만 보여주는 것으로 그 뒤에서 고전하고 있는 개발자들의 땀입니다.

24.Tutorials won’t make you independent.

튜토리얼만으로는 독립할 수 없습니다.

튜토리얼을 보거나 읽는 것은 기술의 개요를 알 수 있을 것입니다.
하지만 그것뿐입니다. 그다음으로 갈 수 없습니다.
공식 문서를 읽거나 하면서 분석력을 키우고, 자신만의 솔루션을 발견하는 것이 필요합니다.

25.No tech is perfect.

완벽한 기술은 없다.

여러 기술은 그 나름대로 장단이 있습니다.
확신이 서지 않는다면, 선택지를 나열해 그들이 과제를 어떻게 처리하는지 비교해봅시다.

26.Your ability to pick up stuff matters.

적응력도 중요한 능력입니다.

기업에 지원할 때 그 기업이 메인으로 하는 기술 스택에 정통하지 못할 가능성이 큽니다
중요한 것은 얼마나 많은 기술을 알고 있는가보다 새로 만난 기술을 얼마나 빠르게 익힐 수 있는 가입니다.

27.Version control is a must.

버전 관리는 필수.

클라이언트는 종종 변경 전의 디자인을 요구하거나 요구를 몇 번이나 바꿉니다.
버전 관리는 많은 수고를 덜며, 과거 코드의 백업을 보증합니다.

28.Bugs can be really intimidating.

버그는 정말 두려운 존재입니다.

수정에 몇 시간, 며칠을 쓰더라도 버그는 잡읍시다.
그 덕에 아무것도 못하겠지만, 이를 넘을 때 당신은 큰 성장할 수 있습니다.

29.Learn what not to learn.

불필요한 것들을 눈치챕시다.

우리들은 어마어마한 기술정보의 바다에 조난을 당하고 있습니다.
현재 익혀야 할 중요한 기술의 하나는 ‘무엇을 배울 필요가 없는지’ 배우는 것입니다.

30.Reading code makes you better, too.

코드리딩은 당신을 더욱더 성장시킵니다.

코드를 쓰는 것은 자신이 아는 것을 되돌아보는 것입니다.
마찬가지로 다양한 디자인 패턴이나 모범사례를 학습하기 위해서는 다른 개발자들의 코드를 읽는 것도 무척 중요합니다.

31.Be humble and others will respect you.

겸손이야말로 존경심을 이끕니다.

속으로는 어떻더라도, 겉으로는 겸손하시길 바랍니다.

자만하는 말을 지껄인다면 모두 당신을 좋게 보지 않습니다.

32.Being a perfectionist will slow you down.

완벽주의는 속도를 잡아먹는 악령입니다.

양보다 질을 추구하는 것은 무척 좋은 일입니다.
하지만 그것을 너무 추구한다면 중동무이한 미완성 프로젝트 탑을 쌓을 것입니다.

33.Open source is awesome.

오픈 소스는 어마어마합니다.

개인부터 대기업까지 오픈 소스 커뮤니티는 커다랗게 퍼져있습니다.
이건 어마어마하게 멋진 일이며, 나는 우리가 함께 더 나은 프로젝트를 만들고 있다 믿습니다.
다른 사람들의 디자인 패턴과 모범사례를 반드시 학습합시다.

34.The diploma is optional.

학위는 선택입니다.

클라이언트는 문제 해결을 하기 위해 대부분 학위가 아닌 능력을 요구합니다.

35.Break it down when you get stuck.

막혔다면 쪼개봅시다.

문제가 너무 크면 해결하는 것이 어렵게 느낄 수 있습니다.
그럴 때는 문제를 쪼개, 조금씩 조금씩 풀어봅시다.

36.Corporate companies need you for CRUD apps.

기업은 CRUD를 필요로 합니다.

기업의 중심은 CRUD 업무입니다.
취직을 생각하신다면 매일 공부하면서 CRUD 앱을 준비해보세요.

37.The project is never fully finished.

프로젝트는 완벽할 수 없습니다.

그 어떤 프로젝트도 개선할 여지가 있으며, 최적화할 여지도 있습니다.
프로젝트가 요건만 갖춘다면 그것이 공개의 시기입니다.

38.Good code is easy to read and maintain.

좋은 코드란 읽기 쉬우며, 유지 보수하기도 쉬운 코드입니다.

혼자 치던 코드라 하더라도 다른 사람도 이 코드를 칠 수 있다는 전제로 코드를 써야 합니다.
어려운 부분은 처리내용을 주석으로 남겨줍시다.

39.The first language is always the hardest.

처음 배운 언어가 언제나 가장 어렵습니다.

어떤 언어가 가장 어려운가 화두가 됩니다만 학습 난이도는 어디까지나 경험 의존하는 이야기라는 걸 압시다.

40.Googling and using Stack Overflow is acceptable.

인터넷 검색이나 Stack Overflow를 하는 것도 일의 일환입니다.

이들은 당신을 돕기 위해 존재하는 것입니다.
이들을 사용하는 것을 부끄럽게 여길 필요가 없습니다.
꼭 사용합시다.

41.Communication skills are underrated.

커뮤니케이션 능력도 중요합니다.

코드만으로 프로젝트에 성공할 수 없습니다.
다른 사람과 커뮤니케이션하는 것 또한 중요합니다.

42.Sharpen your negotiation skills.

교섭력을 키웁시다.

어떤 최첨단 기술을 알아도 교섭력이 없으면 지식과 기술이 썩을 뿐입니다.

43.Having an online presence is important.

온라인에서의 존재감은 중요합니다.

아무리 로컬로 크고 많은 프로젝트를 돌려도 아무도 모른다면 존재하지 않는 것이죠.
착실히 홍보해서 온라인에서 존재감을 키웁시다.

44.Always be aware of the 20/80 rule.

2:8 법칙을 의식합시다

프로젝트는 마지막 20%가 프로젝트에 걸리는 시간의 80%를 점유한다는 것을 명심합시다.
클라이언트에게 진행 상태를 알리기 전에 이를 생각해주세요.

45.Don’t over-engineer without a cause.

이유없는 오버 엔지니어링은 해악입니다.

추가하는 것보다 제거할 기능이 없는 상태를 목표로 하는 것이 좋은 방법입니다.

46.Frameworks come and go.

프레임워크는 항상 바뀝니다.

프레임워크의 베이스가 되는 기술을 배우면서 필요에 따라 프레임워크를 선택하는 것이 더욱 가치가 있습니다.

47.Knowing something well is better than pretend to know a bit of everything.

모든 것을 자잘하게 아는 것보다, 어떤 것을 자세히 아는 것이 좋습니다.

모든 것을 다 아려 하는 것보다 흥미있는 특정 분야를 조사하고 그 기술에 심취해봅시다.
팔방미인이 되려 한다면 되려 아무것도 못하는 사람이 됩니다.

48.Testing is there for a reason.

테스트가 존재하는 이유가 있습니다.

테스트를 쓰는 습관을 들입니다.
처음에는 이게 무슨 짓인가 생각하실 수 있을 겁니다.
하지만 규모가 큰 코드일수록 테스트를 쓰는 것으로 많은 시간이 절약됩니다.

49.Achievements boost your motivation best.

성과는 동기부여를 가속합니다.

무엇인가 깨달았을 때, 새로운 개념을 익혔을 때, 사용자가 좋아하는 모습을 보았을 때, 자기 일이 가치 있음을 느낄 때.
이러한 모든 것들은 동기부여의 에너지가 될 것입니다.

50.Do not put up more than you can carry.

더 많은 짐을 안지 마세요.

새로운 것을 배우는 것은 충분히 도전적입니다
하지만 내가 안을 수 없을 정도로 거대하지 않은 과제가 아닌 대가 적당히 다룰 수 있는 과제를 다룹시다.

51.Do not compare yourself to others.

비교하지 마세요.

다른 개발자의 성과와 비교해버리면 자신이 초라해 보일 뿐입니다.
자신의 페이스 유지하면서 성장하는 것이 가장 소중합니다.

52.Do not take criticism personally.

자신이 비판받는 것인지 앱이 비판받는 것인지 생각해봅시다.

건설적인 비판은 귀중한 피드백입니다.
혼자서 깨닫지 못한 미스와 개선점을 지적해주는 것이기 때문입니다.
결국 이들 덕분에 더욱 좋은 제품을 만들 수 있게 됩니다.

53.Everyone has written a bad code.

모두가 바보 같은 코드를 씁니다.

과거에 쓴 코드를 다시 보면, 말도 안 되게 부끄러운 코드가 있기도 합니다.
하지만 그것은 우리가 확실하게 성장하고 있다는 명백한 증거입니다.

54.One finished project is better than 10 half-finished ones.

10개의 퍼즐 조각보다 1개의 완성된 퍼즐.

하나 혹은 둘 정도 프로젝트만 수행하면서 아이디어를 구현합시다.
마지막까지 완성하는 것이 중요합니다.

55.The best way to learn is by teaching others.

가장 좋은 학습법은 사람을 가르치는 것.

다른 사람을 가르치기 위해서는 자신이 그 이상을 알아야 합니다.
이는 당신이 무엇인가의 본질을 아는 의미로 그 지식을 공유하면서 모두가 행복해집니다.

56.You are never ready to apply for a job.

당신은 입사준비를 절대 할 수 없습니다.

프로그래밍을 배우는 것은 과정이지 목적지가 아닙니다.
이런저런 이유를 대기보다 일단 지원해봅시다.

57.The hype train is real.

트렌드에 타봅시다.

트렌드를 건들 필요는 있습니다.
깊게 파고들기보다 중요한 유저케이스와 동작원리 정도를 이해해봅시다.
그러면 실제 툴을 선택할 때에 어떤 툴이 어떤 문제를 푸는데 적절한지 알 수 있습니다.

58.Practice leads to mastery.

연습이야말로 정도입니다.

반복은 모든 지식의 근본이며, 무엇인가 숙달하기 위한 정도입니다.
이를 끈질기게 해봅시다.

59.Focus on the indexes, not the content.

주목해야하는 것은 인덱스며, 컨텐츠가 아닙니다.

오늘날 중요한 것은 정보를 빠르게 확인하는 것입니다.
무엇인 필요한가 그리고 어디를 보아야 하는가를 안다면, 나머지는 시간을 들이면 어떻게든 해결됩니다.

60.Be a sponge for knowledge.

지식의 스펀지가 되어라

지식과 경쟁력을 유지하기 위해 매일 공부하는 습관을 들여야 합니다.
누구에게 배울 것인가 신중히 결정하면서, 양보다 질을 추구합시다.

61.Learn to say no.

No라 말할 수 있길 바랍니다.

거절하지 않으면 언젠가는 누군가 이를 이용해서 필요 이상의 일을 당신에게 줄 것입니다.

62.Note-taking is your rescue for writing block.

메모는 아이디어를 구합니다.

언제 어디서든 늘 아이디어를 생각하고 추구합시다.
그리고 여러분이 영감이 말랐을 때를 대비해 기록을 메모합시다.

63.Schedule the week and prioritize.

스케쥴을 세우고 우선순위를 결정합시다.

계획을 세우는 것에 시간을 할애합시다.
해야 할 일을 지정하고 수행할 순서를 정하기가 쉬워집니다.

64.Taking breaks make wonders.

휴식에는 신비한 힘이 있습니다.

막혔다면, 어느 정도 코딩과 무관한 것을 해봅시다.
가족과 보내거나 취미활동, 운동 등을 합시다.
다시 프로젝트를 마주할 때 신비하게도 간단히 해결하기도 합니다.

65.Sports and proper sleep boost productivity.

충분한 운동과 수면을 취하세요.

8시간 수면, 4시간 일이 4시간 수면, 8시간 일보다 많은 일을 합니다.
여기에 운동까지 한다면 최고의 컨디션으로 금상첨화입니다.

종종 혼자 보기 위해서 번역한 걸 메모하는데, 저처럼 초보자분들이 같이 보면 좋을 것 같아서 글을 적어봅니다… 그럼… :slight_smile:

9 Likes

정말 좋은글이네요. ㅎㅎㅎ 제가 하고싶은말 거의다 적혀있네요.

1 Like

오, 실제로도 중요한 말들이 담겨있나봐요.
저는 좋은 말 같아서 메모해뒀는데. :slight_smile:

1 Like

image

코린이인데 잘 보고 갑니다 ㅎㅎ 익숙치않은 단어들도 있지만 좀 더 공부한다면 알아볼 수 있겠죠?

:clap: :clap: :clap: :clap:

아마 그건 제 번역이 구린거… ㅌㅌㅌㅌ =3=3=3=3

6번은 동의 못합니다 저는 ㅋㅋㅋㅋㅋ
빌드하는 시간도 그렇고 결과물 하나 보는데
10분 이상 걸리면 복장이 터질 것만 같아요 ㅋㅋㅋ

고성능의 하드웨어가 필수는 아니지만
삶의 질을 올려주는 것에는 틀림이 없습니다 ㅠㅠ

빌드 해야되는 양에 따라 처절하게 다르죠…
회사에서 도커 컨테이너 11개 동시에 돌려재끼는 앱을 개발하거나 언리얼엔진으로 FPS 게임 찍어내는거면 당연히 고성능 하드웨어 필요하죠…
심지어 리누스 토발즈 아재는 라이젠 스레드리퍼로 컴퓨터 바꿨다고 하더라고요. (아조씨… 저도 쓰레드리퍼 하나만… 아니면 EPYC 하나라도…)

초보의 단순히 Hello World 띄우는 수준의 코드면 그렇게 까지 좋은 하드웨어를 요구하지 않을 것 같네요.

1 Like

저는 요새, 일부러 CI파이프라인 사용을 늘렸읍니다. 그전에는 로컬에서 다 했었는데, 파이프라인에 이것 저것 많은 스텝들이 늘어서 되게, 지저분 하고, 느려졌거든요. 덕분에, 5분걸릴 변경 사항 확인작업이 15분이상 걸리죠.

Dua Lipa 도 듣고, 잡담도하고, 주식도 보고 그러면서 시간가는줄 모르겠네요. ㅋㅋㅋㅋ

1 Like

으잉!! 좋은팁 고맙읍니다 ‘^’

당연히 좋은 컴이 있으면…좋은 건 확실합니다.

본인 실력이든 프로젝트 규모든 어느 정도 궤도에 올라있다면 컴퓨터 사양도 챙겨줘야하는군요

덕분에 CI파이프라인에 대해 조사해봤습니다.

1 Like

이 글로 도움이 조금이라도 되었다니, 저야말로 감사합니다 :slight_smile:

근데 보통 CI 파이프라인이 적용된 컴퓨터가 로컬 컴퓨터보다 성능 좋지 않나요…?

프로젝트 규모에 따라 다른 것 같습니다.
저는 옛날에 도커 컨테이너 11개 동시에 돌리는 앱 같은 거 개발할 때 회사에서 64GB 램에 제온 CPU 달린 가상컴퓨터 줬거든요

뭐 다른회사는 어쩐지 모르겠는데요. 저흰 그냥 적당한 노드들로 구성된 k8s를 쓰네요. 빌더 스케쥴링 받고 뭐하고 하는데 시간좀 걸리는거 같고요. 병신같은 취약점 스캐너 한세월이고 그렇읍니다.

notion에 남겨놓고 싶은데, 복사해가두 되나여?

당연하죠 :slight_smile:

1 Like