Why?
개발자는 항상 "왜?"라는 질문을 하며 살면 좋습니다.왜일까요?
아래의 예시를 통해 말씀을 드리겠습니다.
아래 코드는 기초적인 String 타입의 상수를 지정하는 방법입니다.
let first: String = "first"
let second = "second"
let third = first + second
위의 코드에서 first, second, third는 모두 String 타입의 데이터입니다.
여기서 "그렇구나"하고 넘기게 된다면 어떻게 될까요?
만약 개발을 모르는 친구가 여러분에게 위의 코드를 보고 아래와 같은 질문을 한다면 어떻게 대답하실건가요?
셋이 다 다른 코드인데 어떻게 똑같은 타입이 되는거야?
만약 여러분이 위의 코드에서 "그렇구나"라고 생각하고 넘어갔다면 이 질문에 대한 대답으로 "그냥 그렇다고 했어"라는 식의 대답 밖에 할 수 없게 됩니다.
그럼 친구는 여러분이 정말 학습을 했는지 의심할 수도 있겠죠.
친구조차도 이런데, 실제 회사에 간다면 어떨까요? 직장 상사가, 동료가, 여러분의 능력을 의심할 수도 있습니다.
개발에 있어서 그냥 이라는 것은 없습니다.
모든 코드는 이유 가 있고, 여러분도 이유 가 있는 코드를 작성해야 합니다.
지금 당장 모든 코드에 대해 왜 이렇게 작성해야 하지? 라고 의문을 가지실 필요는 없습니다.
왜냐하면, 모든 코드의 원리를 알아내려면 최초의 코드부터 시작해서 다양한 CS 지식도 필요하고, 각 개발 언어에 대한 역사와 이해도 필요하기 때문에 상당히 어렵고 복잡하기 때문입니다.
지금은 그저 왜?라고 스스로 질문할 수 있는 사람이 되는 것으로 충분합니다.
학습을 진행하며 조금이라도 궁금한 것이 생긴다면 스스로 고민도 해보고, 인터넷이나 주변 사람들에게 물어보며 이유를 찾아내 보세요.
그리고 찾아낸 내용을 잘 정리해서 보관한다면, 그것은 여러분의 강력한 무기가 될 것입니다.
마치며...
Solving difficult problems is an opportunity to test a developer's creativity and perseverance.
"어려운 문제를 해결하는 것은 개발자의 창의력과 도전정신을 시험하는 기회이다."
Linus Torvalds