소프트웨어 개발자인 나.
지금까지 여러 가지 기술셋을 경험해 봤다.
기억나는데로 열거해보자면,
C, C++, MFC
Java, Spring, Hibernate,
Android
Nodejs, Mongodb
Phantomjs, Selenium
MySQL, postgreSQL
python
angularjs, bootstraps
그 외 툴들 svn, git, gradle, maven, jenkins, splunk
운영체제 : ubuntu, mac, Windows
open source : hadoop, hive, pig
그러나 각각에 대해 얕은 기술 수준임을 알고 있다.
사실 얕다는 것을 아는 데도 오랜 시간이 걸렸다.
프로그래밍이란게 조금 검색하면서 만들 수 있는 수준이 되면
웬지 다 아는 거 같은 느낌도 든다.
그렇다면 어디까지 알면 깊은 것이고 어디까지 알면 얕은 것인가?
예를 들면, nodejs를 깊이 있게 아는 것과 얕게 아는 것은 무엇을 의미하는가?
내가 생각하기로는 다음 질문이 이 기준을 대신한다고 생각한다.
상용 서비스가 가능한 프로그램을 만들 수 있는가?
- 요구 사항을 구현가능한가?
- 많은 사람들이, 동시에, 사용해도 문제 없는 프로그램을 만들 수 있는가?
- 빠르게 구현이 가능한가?
- 유지보수가 가능한 소프트웨어를 짜는가?
위 조건을 만족하기 위해서는 각 기술들이 가지는 특성들을 정확하게 이해해야한다.
그래야, 요구사항을 만족시키는 프로그램을 빠르고, 유지보수가능하게, 효율적으로
작성하는 것이 가능하다.
댓글 없음:
댓글 쓰기