1. 가급적 특정 기업이나 플랫폼에 종속된 언어는 제외한다. 예를 들어 애플의 스위프트를 선택하면 비싼 아이맥을 따로 사야 하고 윈도나 리눅스에서는 테스트 따위는 불가능하다.


2. 멀티 패러다임 언어를 선택한다. 절차지향이나 객체지향 어느 하나만 다루는 언어만 파고들면 나중에 다른 언어 페러다임을 이해할 때 힘들어지고 별도로 해당 페러다임을 지원하는 다른 언어를 또 공부해야 한다. 실제로 C를 배운 후 C++이나 자바를 배우는 학생들이 객체지향에서 막혀 고생하거나 자바8 이전 버전 자바 개발자들이 함수형 언어 개념을 이해하기 위해 머리를 쥐어뜯는 경우가 많았다.


3. 텍스트 편집기가 아닌 IDE에 전적으로 의존해야 하는 언어는 지양한다. 입문자가 처음부터 IDE에 맛들이면 실력은 안 는다. 왜 입문자는 날코딩부터 시작해야 한다고 가르치는지 잘 생각해 볼 것.


4. 메모리, 포인터, 소켓 등을 다루는 로우타입형 언어는 가급적 제외한다. 말은 안 해도 웬만한 이들은 저게 C/C++을 가리키는 거라는 걸 알껄?


5. 문법 규칙이 지나치게 유연하고 널럴한 언어는 제외한다. 입문자의 코딩교육에 해가 된다. 파이썬이 입문용으로 각광받는 이유가 들여쓰기 강제 등 엄격한 문법 규칙인데 초반부터 문법 규칙을 엄격하게 지키는 연습을 해야 한다. 안 그러면 쓰레기 같은 입문자들 유입이 늘어나서 골치아파진다. HTML5 등장 이전 웹이 왜 개판이 되었는지를 잘 생각해보라.