케미칼 연구직 재직 중 프로그래밍 및 알고리즘 공부
현재 케미칼 회사 연구직에 종사 중이고, 15년정도 일했습니다.
제가 하는일에는 아직 전통적인 방식으로 실험하고, 데이터 수집 및 해석, 회사 프로세스에 적용 중인 것이 많이 있습니다.
프로그램 및 알고리즘을 공부하여 좀 더 스마트하고 스피드하게 할 수 있도록 개선하고 싶습니다.
프로그램 전문가를 영입하더라도 이해하는데 많은 시간이 필요할 것 같아서 제가 직접 공부하여 도전해보고 싶습니다.
향후 프로그램 전문가를 영입하더라도 제가 알고 있어야 업무 진행이 빠를것 같습니다.
질문은 다음과 같습니다
1. 제가 공부한다면 어떤 프로그램을 공부해야하고, 대략적 기간은 얼마나 걸릴까요?
2. 전문가를 영입하여 개발한다면 어떤 인재를 선발해야하며, 개발 및 유지 보수에 몇 명이나 필요할까요? 그리고 개발 기간은 얼마나 걸릴까요?
참고로 회사 매출은 수 조 단위 대기업이며, 큰 그림을 그리고, 작은 부분부터 바꿔나가면서 연구 프로세스 개선, 품질 프로세스 개선 등을 해나가고 싶습니다.
제가 생각하는게 너무 큰 일(기간, 비용, 효과)이라면 많은 사람을 설득이 필요할것 같아요.
전문가님들 많은 의견 부탁드려요
제가 하는일에는 아직 전통적인 방식으로 실험하고, 데이터 수집 및 해석, 회사 프로세스에 적용 중인 것이 많이 있습니다.
===> 이 내용이라면 파이썬 을 배워보시는것을 추천합니다
그리고 에디터는 파이참 을 추천드립니다
파이참 하시면 파이썬도 지원되기에 프로그램 짜다가 에러 발생시 디버깅 하기 많이 쉽습니다
안녕하세요. 저는 7년 정도 프로그래머 일을 하고 있는데요.
먼저 대기업에서 프로세스를 바꾸는 것은 쉽지 않은것 같아요. S사에서도 근무하다 이직을 통해 외국계 회사에서 근무를 하고 있는데 결국 효율적으로 업무를 할 수 있도록 제가 직접 프로그램을 만들어서 공유도 해보고 제안들을 해보았지만 프로세스를 바꾸는게 쉽지 않네요.
국내 대기업에서는 이런게 더 쉽지 않았고 이게 싫어서 외국계 회사로 옮겼지만 물론 국내 기업보다는 유연했지만 쉽지 않은것 같습니다.
질문 주신 내용에 답은 아래를 참고해주세요.
1. 제가 공부한다면 어떤 프로그램을 공부해야하고, 대략적 기간은 얼마나 걸릴까요?
- 기간 없습니다. 하고자 하는 것이 무엇이냐에 따라 다릅니다. 아주 간단한 프로그램 정도 만들겠다면 일주일이면 되고, 전문적으로 프로그램을 만들고 싶다면 몇년이 걸려도 모자르죠. 간단히 기능만 동작하는 수준의 프로그램을 만드는 방법을 배우기 위해서는 오래 걸리지 않습니다. 하지만 대형 프로젝트 같은 경우는 유지 보수 개발도 해야하기 때문에 프로그램 설계부터 제대로 해야하는데 이런 것들을 배우려면 몇년이 걸려도 쉽지 않습니다.
- 아마도 데이터 수집 및 해석 정도만 할 정도의 프로그램이라면 Java or Python 언어를 배워서 하실 수 있을것 같은데, 직장인이 시간을 내면서 하려면 적어도 두달 정도는 걸리지 않을까요? 그렇지만 맨땅에 헤딩하는 느낌으로 배우실텐데 쉽지는 않을거에요.
2. 전문가를 영입하여 개발한다면 어떤 인재를 선발해야하며, 개발 및 유지 보수에 몇 명이나 필요할까요? 그리고 개발 기간은 얼마나 걸릴까요?
- 해당 Chemical Domain 지식을 가지고 있는 인재는 찾기 쉽지 않을것 같네요. Chemical Domain 지식을 가진 인재보다는 새롭게 배우려는 의지를 가지고 있는 젊은 개발자가 좋지 않을까 싶네요. 왜냐하면 결국 처음부터 배워서 그 내용을 바탕으로 프로그램 개발을 해야하는데 뭔가 세상 경험이 많아지면 사실 배우려는 의지가 많이 줄어드는게 사실인것 같습니다. 또한 Chemical 전공자들을 이용해 개발하면 어떨가 싶으실 수 있는데, 큰 프로젝트일 수록 프로그램 설계를 잘해야지만 유지 보수가 쉽습니다. 그런데 프로그램을 전공하지 않은 분들은 기능 개발은 하실 수 있지만 프로그램을 크게보고 만드는 것은 부족할 수 있습니다.
- 개발 기간은 어떤 것을 만드냐에 따라 다를 수 있죠. 그리고 어떠한 Quality의 프로그램을 원하냐에 따라 다를 수 있습니다. 시간에 쫓겨서 만드는 프로그램은 Quality가 떨어지며 이로 인해 향후 유지보수 또한 쉽지 않죠.
결국 위 내용을 모두 정리해서 말씀드리면 case-by-case 라는 것입니다. 자세한 내용을 open하셔서 전문가랑 상의해보셔야 할것 같습니다.
1. 제가 공부한다면 어떤 프로그램을 공부해야하고, 대략적 기간은 얼마나 걸릴까요?
-> 프로그래밍이 처음이라면 파이썬 프로그래밍을 공부하는 것을 추천합니다.
다른 프로그래밍 언어에 비해서 쉽기 때문에 처음 배우기 좋은 언어 입니다.
또한 데이터 분석을 파이썬을 가지고 많이 하는 것으로 알고 있습니다.
2. 전문가를 영입하여 개발한다면 어떤 인재를 선발해야하며, 개발 및 유지 보수에 몇 명이나 필요할까요? 그리고 개발 기간은 얼마나 걸릴까요?
-> 업무에 따라서 다르지 않을까 합니다.
프로젝트 규모에 따라서 일정산정을 하기 때문에 몇명이라고 말하기 어려울것 같습니다.
저는 도메인 지식이 없는 사람들이 데이터 분석을 한다고 와서 큰 성과가 없어 따로 3년 정도 공부하여 데이터 엔지니어 일을 병행하고 있습니다. 우선, 회사 시스템에 맞아야 할 것 같습니다. 데이터가 나오는 것이 엑셀로 변환된다고 하면 어느 프로그래밍 언어를 하셔도 좋겠지만 python 을 가장 추천 드립니다. 만약, 회사에서 프레임웍을 사용 중이시고 데이터를 밖으로 뽑아낼 수 없거나 혹은 정지된 데이터를 뽑는 것은 의미가 없는 경우엔 해당 프레임웍이 지원하는 모듈을 공부하는 것이 좋습니다. 가령 랩뷰를 사용한다면 랩뷰에 맞게 모듈을 붙이는 것이 중요하겠습니다. 정지된 데이터가 아닌 경우는 데이터 스트림을 말하는 것입니다. 끊임없이 나오는 데이터를 가공할 만한 연결점이 필요합니다. 연결점은 프로토콜이라고 할 수 있고 소켓, 파이프, JSON 등 다양합니다.
1. python 으로 가능하시다면 완전 기초부터 1년이면 데이터 엔지니어 수준 까지 이를 수 있습니다.
2. 케이컬에 대한 도메인 지식이 더 중요합니다. 해당 업무를 알아야 하니 전문가라고 하면 케미컬 쪽 경험이 있는 데이터 엔지니어여야 겠습니다. 보통 데이터 분석가/엔지니어/사이언티스트 한 팀이며 사이언티스트의 경우 보통 박사라 경력직의 경우 연봉 1억은 넘는다고 들었습니다.
초봉은 5000~6500 입니다. 분석가나 엔지니어도 연봉 천차만별인데 데이터 분석 프로젝트는 실패하는 경우가 많으니 성공 케이스의 경력을 보유했는지 아닌지가 관건인 것 같습니다. 그런 경우 대부분 8000이상 갑니다. 명수는 시스템 크기에 따라 다르니 우선, 3명+알파 겠네요. 프로젝트 종료 후 유지보수만 하실 것 같으면 데이터 엔지니어만 있어도 된다고 대부분 생각합니다. 왜냐면, 이미 분석가나 사이언티스트가 만든 모델 가지고 프로그램이 하며 유지보수하니까요. 그래서 제가 있는 회사에서도 단발성으로 프로젝트 한다고 모였다가 헤어지는 경우가 많은 것 같습니다. 그러나 저는 매우 부가가치가 높고 의사 결정에 중요하기 때문에 한 번 뽑으시면 계속 팀으로 유지시키는 것이 좋다고 생각합니다.
끝으로 15년 정도 하셨으면 사실 완전히 새로운 도전이 될 수도 있는데요. 앤드류옹도 좋지만 국내 모 회사의 빠른 온라인 과정이 참 좋다고 생각됩니다.
현재 하고 계신 업무를 개선하고자 다른 분야인 IT분야를 도전하신다고 하니 대단하신것 같습니다!!
질문에 대한 주관적인 의견을 드린다면..
먼저 어떤것을 만들고자 하는지 컨셉, 기획이 먼저 필요할 것 같습니다. 동작은 어떻게 되어야하고 어떤 화면이 필요하고 어떤 정보가 있어야 하는지? PC에서 사용하실 건지? 기대효과 예상 등이 필요하겠습니다!
1. 직접 공부를 하실경우 먼저 어떤 플랫폼을 해야할지 결정을 하셔야 겠네요. 일반적으로 모바일, 웹, 윈도우 프로그램 등이 있습니다.
결정 후 프로그래밍 스킬을 배우셔야 하는데 해당 플랫폼에선 주로 어떤 기술을 사용하는지 포탈에서 검색해보면 쉽게 나옵니다.
2. 전문가 영입
사람수랑 개발기간은 기획에 따라 규모와 범위가 달라지므로 현재로선 결정할 수 없습니다.
생활코딩 (opentutorials.org) 여기에 가셔서 기본과 개념을 복습하세요.
그리고나서 GitHub: Where the world builds software · GitHub 여기에 가셔서
구현하고 싶은 기능에 관련된 소스나 아니면 참고하실만한 소스를 구하셔서 그걸로 연습하세요.
전혀 아무런 참고할 소스조차 없다면 아무소스나 가져와서 분석하시면서 알고리즘을 학습하세요.