본문 바로가기

개발/Algorithm

[알고리즘/Algorithm] 프론트엔드 코딩테스트 언어에 대한 고민 (Python vs. Javascript)

Web frontend developer을 희망하고 있는 사람으로서,

코딩테스트 언어를 어떤 것을 선택해야 할지 고민이 들어 이 고민 과정을 남겨보고자 한다.

 

고민하고 있는 언어는 Python 혹은 Javascript.

각 언어의 장단점을 적어본 후,

이 글을 마칠 때 쯤엔 어떤 언어를 선택할지 결정했으면 ,,

 

1. Python

-> 👍 방대한 자료. 코딩테스트 준비를 본격적으로 시작했다고 하기에는 아직 이른 이 시점, 다양한 알고리즘에 대한 공부를 하고 코드의 퀄리티를 높이기 위해서는 다양한 풀이를 접해보는 것이 중요하다고 생각한다. Python은 가장 기본적인 코딩테스트 언어로 꼽히기 때문에, Javascript에 비해서는 정말 월등히 많은 자료를 가지고 있다. 코딩테스트 문제 풀이 중에 Python 풀이가 없는 건 없을 정도. 

-> 👍 지금까지 코딩테스트를 준비해 왔던 언어는 Python이었다는 점. 그래서 내게 알고리즘 문제를 풀 때 가장 익숙하고 편한 언어이다. 그런데 이 상황에서 Javascript로 전환해야 하면 다시 적응하는 기간을 가져야겠지. 알고리즘 문제를 푸는 것은, 그 로직이 중요하지 언어는 도구일 뿐이라는 말들도 있어서, 그런 관점에서 보자면 가장 익숙하고 자신 있는 언어로 보는 게 맞지 않나.. 하는 생각.

-> 👍 다른 언어에 비해 직관적인 풀이가 가능함. 

-> 👎 Python으로만 익히면, 파이썬은 내장 함수가 이미 구현이 잘 되어있는 것들이 많아 타 언어로 풀이를 할 때 어려움이 생김

-> 👎 실무에서 안 쓰니, 코딩테스트'만'을 위해 학습해야 함.

 

2. Javascript

-> 👍 요즘 웹 프론트엔드는 Javascript 만으로 시험을 보게 하는 경우가 늘고 있다. 아무래도 웹 프론트엔드는 JS를 주로 사용하기에 그렇겠지. Python으로 백날 구현 다 해봤어도 시험을 JS만으로 보게 한다면 무조건 JS로 공부를 했어야 하지 않나? 하는 생각.. 마음 같아서는 Python으로 알고리즘 로직들 다 공부하고, 그 문제를 다 JS로도 풀어보는 과정을 거치고 싶은데 그러기엔 시간이 너무 부족하니까,,

-> 👍 실무에서 쓰이는 언어. 결국 웹 프론트엔드 직무로 일을 하려면 JS로 실무를 해야할텐데 (풀스택으로 node.js까지 한다고 해도 그렇고.) Python을 코테만을 위해서 공부해야 한다는 점이 걸린다. JS로 코딩테스트 준비를 하면 알고리즘 로직 뿐만 아니라 Javascript 언어 자체에 대한 이해도도 높일 수 있을텐데. Javascript 공부를 따로 하긴 해야하는데 알고리즘 공부하면서 같이 할 수 있다면 시간도 아끼고 좋지 않을까 싶다.

-> 👎 자료가 없다. 코딩테스트에 있어서는 확실히 비주류 언어. (해외 기업들도 그럴까?하는 의문.. 아무래도 Python 보다야 비주류겠지?)

-> 👎 JS로 안 풀리는 문제들도 있다고 한다. (ex. 백준 2293, 11723 등) - Javascript는 node.js 서버 안에서 실행되는데, 백준에서 node.js 지원 문제인지 종종 JS로는 풀리지 않는 문제가 있다고. 하지만 프로그래머스에서는 지원을 잘 한다고 한다. 그렇다면 leetcode는 어떨까..?

-> 스크립트 언어인 JS 특성 상 느리다고 하는 글도 봤는데, C++과 비교했을 때는 확실히 느리겠지만 Python과 비교한다면..? 그닥 큰 차이는 없고 구현 방식의 문제인 것 같아 일단 회색으로 적어만 둔다..ㅎ 

-> 관련 자료를 찾지는 못했지만, Javascript가 비주류언어이기에 혹시 자바스크립트 코딩테스트를 지원하지 않는 회사가 있나? 하는 막연한 두려움 .. 근데 적고보니 프론트엔드 뽑는데 자바스크립트 코테를 지원을 안하면 안되지 않나 / 지금 JS로만 지원을 받는다고 위에 적었는데 혹시 혹시 JS 지원을 안 할까봐 공부 안 하는 건 아니지 않나 싶네.ㅎㅎ

 

사실상 결국 준비를 Javascript로 하고 싶은데, 저 자료의 부족이 가장 크게 걸림돌이 되는 것 같다.

흠. 

하지만, 내가 지금 내 수준을 돌아봤을 때

- JS 풀이가 없을 만큼 유명하지 않은 문제까지 풀 수준인가? 그렇게 많은 문제를 이미 풀어봤는가? -> X

- 알고리즘 공부를 하면서 따로 또 JS 공부를 할 만큼 시간이 충분한가? -> X. (내년 하반기에는 취업을 하고 싶다. 가능하면 런던에서.. 🤤)

- Python만을 준비했을 때, JS로만 시험 보는 회사를 지원하지 못하면서 JS로 공부할 걸.. 하는 생각이 안 들 자신이 있나? -> X

이니,

 

Javascript로 준비를 해 봐야겠다. 지금 나는 JS 숙련도를 높이면서 알고리즘 공부도 (가능한 빠른 시일 내에) 해야하는 상황이니..코드 비교를 하려고 하면 Python으로 짠 코드들 읽고 로직 분석을 해서, JS로 적용할 방안을 고민해 보는 것도 좋을 듯.

 

참고한 사이트들 :

 

[JS로 코딩테스트 준비하기] 프론트엔드 개발자의 코테 언어 선택

프론트엔드 개발자가 Javascript로 코딩테스트를 준비해야 하는 이유

velog.io

 

 

[JS로 코테 준비하기] 0. FE 개발자의 코딩테스트 언어

발단 나는 코딩테스트를 응시할 때 언어 선택에 있어 한 치의 고민도 하지 않고 C++로 풀어왔었다. 왜? 학부 시절 자료구조와 알고리즘 수업을 C++로 배웠고, 그 이후 당연하게 코딩 테스트도 C++로

gyyeom.tistory.com

 

 

네/카/배 등 최근 빅테크 기업들의 프론트엔드 코딩테스트 방법 | 패스트캠퍼스

프론트엔드로 취업하고 싶다면, JavaScript 공부는 이제 필수!

fastcampus.co.kr

 

 

프론트엔드 코테 언어 고민 ( 파이썬 or 자바스크립트)

예전부터 해오던 생각인데, 이제 취준도 다가왔고 빨리 결정해야 될 것같아서 고민이 많았다. 우선 내가 원하는 직무는 웹 프론트엔드 이다. 그러므로 당연히 JS 를 잘해야하고 잘다룰줄 알아야

bmy1320.tistory.com

 

 

Python vs Javascript execution time

I tried solving Maximum Subarray using both Javascript(Node.js) and Python, with brute force algorithm. Here's my code: Using python: from datetime import datetime from random import randint arr = [

stackoverflow.com