안녕하세요, 존경하는 개발자 여러분.
갑자기 추워진 날씨에 건강은 괜찮으신지요?
저는 안드로이드 개발자를 희망하는 학생입니다.
현재 고등학교에 재학 중이고, 곧 졸업합니다.
안드로이드가 Java 기반이라고 해서, Java를 배우고 있습니다.
C 를 배워두어서 인지 쉽게 배우고 있긴 한데, 여러가지 고민이 있어서 여쭤보려고 합니다.
1. 안드로이드 개발자분들께서는 모두 레퍼런스 폰을 기준으로 어플리케이션을 제작하시나요?
2. 현재 '열혈강의 JAVA Programming' 이라는 책으로 공부하고 있는데요. Java 의 모든 부분을 다 마스터하고 안드로이드 개발을 공부해야 하나요?
3. 안드로이드 기반 기기가 굉장히 다양해서, 어플리케이션 제작에 어려움이 있다고 하시던데, 아이폰 쪽 개발에 비해 많이 힘든가요?
여쭤보고 싶은 사항이 굉장히 많지만, 모두 바쁘실 것이라고 생각되어 중요한 질문만 꼽아보았습니다.
바쁘시겠지만, 도움 주시면 감사하겠습니다!
컴공과 학생으로서 말씀드리면 일단 자바 기본 문법 및 돌아가는것을 아셨다면..
하나의 프로그램을 생각하셔서 직접 제작해보십시오.
책을 다 공부해야지 제작하는게 아닙니다. 프로그래밍은 제작하면서 배워가는것이 큽니다.
하루 종일 구글링 등등을 하고 있다보면... 어느순간 확 늘어날것입니다.
곧 수능인데 수능은 안보세요?
일단 좋은 대학가세요..
대학가라는게 다른게 아니라 시야를 넓히라는 말입니다..
고딩때 옷 팔아서 대박났다! 그건 극소수입니다..그러니 매스컴도 타는거구요..
일단 공부하고 이 사람 저 사람 만나면서 시야를 넓혀보세요..
별거 없다 싶으면 그만두고 꿈을 펼치면 되구요.
긴말이 필요한건 알지만,
간단히 말하자면, "대학부터 가세요. Computer Science를 추천드리고,
그게 아니면(따분한건 못참는다 싶으시면), 취업위주 실무스킬로 가르치는 응용 소프트웨어 학과등을 커리큘럼 보고 잘 찾아가세요.
가장 많이팔린폰으로 하는게 일반적인듯ㅎㅎ 갤럭시s나 갤럭시s2가 거의 레퍼런스폰ㅋㅋ
자바 마스터자체가 말이안되기때문에ㅎㅎ 어느정도 클래스 사용법정도까지만 떼면 바로 안드로이드 들어와서 만들어보세요ㅎㅎ
만들면서 공부하는게 진짜지식ㅎㅎ
1. 안드로이드 개발자분들께서는 모두 레퍼런스 폰을 기준으로 어플리케이션을 제작하시나요? - 레퍼런스폰이 기준이지만 기준을 어긴 폰이 워낙 많아서.. 많이 팔리는 폰 위주로 합니다..(그래야 앱이팔리니까..) 2. 현재 '열혈강의 JAVA Programming' 이라는 책으로 공부하고 있는데요. Java 의 모든 부분을 다 마스터하고 안드로이드 개발을 공부해야 하나요? - 자바의 모든 부분을 마스터하려면.....몇년걸리실듯한대요??? 책보면서 직접쳐보고 하는게 실력이 더 늘어납니다.. 개발자쪽에서는 이런말이 있죠 백문이 불여일타... 백문이 불여 구글링... 3. 안드로이드 기반 기기가 굉장히 다양해서, 어플리케이션 제작에 어려움이 있다고 하시던데, 아이폰 쪽 개발에 비해 많이 힘든가요? -아이폰과 안드로이드 개발은 서로... 장단점이 존재합니다.. 안드로이드에서는 UI만들기가 만만치 않는 작업이지요 아이폰에서는 에뮬레이터가 거의 모바일과 동등한 수준이라 테스트하기 편하고 UI도 만들기 쉽습니다.. 지원하는 UI도 꽤 많죠 그러나 메모리 관리를 아주잘해야합니다.....그거외에도 이것저것 많습니다... 그 이후는 다음분이 알려주시길
OS 아키텍처 정도는 알아야 밥먹고 삽니다.
자바같은 랭귀지 자체는 아무것도 아닙니다.
CPU가 어떻게 돌이가는지 os는 어떻게 돌아가는 지 정도는 알아야 디버그도 합니다.
체계적인 교육을 받는게 제일 쉬운길입니다.인 서울 정도도 커리큘럼이 그닥 별로인 학교가 많습니다. 서카포정도 학교면 빡시게 가르켜 줄겁니다. 공부가 제일 쉽습니다.
정답이 있잖아요. 앱하나 만들려고해도 정답이란게 없으니 얼마나 힘든데요.
1. 많이 팔린 폰...즉 유저수가 많은 폰 기준으로 만듭니다.
(참고로, 저는 3대 정도 있습니다.)
2. 만들고자 하는 부분만 먼저 익히시고 접근하시는게 좋습니다.
마스터 한다고 해도 몇달안에 모든 분야를 깊이있게 접근하는건 불가능하기 때문입니다.
예를 들어, 순수 로컬로만 돌아가는 앱같은 경우 네트웤을 공부해도 도움이 안되겠죠..
하나씩 만들어가면서 깊이와 넓이를 넓히세요~
3. 최근 저의 경우를 예로 들면...
사이즈를 계산하는 루틴을 특정 이벤트에서 계산하도록 처리하였으나,
특정 모델에서 사이즈가 이상하게 나온다는 연락을 받았습니다.
해당 모델을 확인할 수 없어서 몇가지 방어코드를 추가한 결과 정상동작이 된 적이 있네요..
그만큼, 제조사마다 틀릴수가 있어서 고생입니다.
참고로...저도 공부가 젤루 쉬었습니다.
윗분들도 말씀하셨지만...이론적인 배경이나 로직이 랭귀지보다 훨씬 중요합니다. 기본이 잘되어 있으면 랭귀지같은건 몇일이면 공부합니다. 가능한 좋은 대학가서 이론적인 공부로 기본을 탄탄하게 하는게 훨씬 쉽고 좋은 길로 가는거죠..
고등학교때는 하시더라도 너무 많은 시간을 할애하는 것은 크게 추천드리고 싶지 않네요. 물론 도전하고 경험을 쌓는것 자체는 좋은 일이지만요.
만약 하루에 10시간 코딩에 몰두해도 즐겁다면 대학 안가도 될 것 같습니다. ^^ 그러나 개발일이 java 언어 하나 안다고 되는게 아니라는거. 다른 이론들 습득하는게 혼자서 못할 것도 없지만 배우는게 빠르니 빠른 쪽이 낫겠죠? 대학을 가더라도 주는것만 받아먹지 말고 스스로 이 바닥을 헤엄쳐서 완주하시길.
확실히,
CS 졸업하면, 4년 시간이 좀 아깝긴 하지만, [ 경력+금전적 ] (학비 문제가 아니라, 돈을 못버므로)
지금와서 보니, 손해보는 느낌은 없습니다.
어찌보면 다행이란 느낌도 들구요.
일단, 비전공 경력자보다는 우위에 서있다는 느낌입니다. (실무스킬은 딸리겠지만)
바꿀 수 없는 무엇이 있죠. (자부심은 둘째치고, 문제를 생각하는 방법 등)
1. 안드로이드 개발자분들께서는 모두 레퍼런스 폰을 기준으로 어플리케이션을 제작하시나요?
-> 안드로이드 개발회사라면 크게 둘로 나뉘는데요 안드로이드 폰에서 돌아가는 어플이나 서비스를 제작하는 회사랑
안드로이드 폰을 제조하는 제조사죠
일단 저는 제조사를 다니므로 제조사만 설명드리자면 항상 새로운 안드로이드 버젼이 나오면 제조사에서 사용하는
AP, CP칩 제조사에서 포팅을 해준 레퍼런스 코드를 줍니다. (커스터마이징된경우도 있다고 하네요)
그러면 그 코드를 가지고 통신사에서 요구하는대로 화면구성이나 추가적인어플, 제조사에서 심어놓는 어플을 만들어
파는거죠. 레퍼런스폰은 보통 공용되는 어플을 구현하거나 테스트할때 비교용도로 많이 쓰입니다.
그리고 대부분의 어플들은 레퍼런스 코드를 베이스로 시작해서 제조사별로 커스터마이징 하고요.
2. 현재 '열혈강의 JAVA Programming' 이라는 책으로 공부하고 있는데요. Java 의 모든 부분을 다 마스터하고 안드로이드 개발을 공부해야 하나요?
보통 자바나 C나 똑같은 언어고 별로 차이 없다고 이야기 하는데 그런 이야기는 진짜 초보적으로 컴파일 에러 안나는 수준에서
해주는 이야기고요. 안드로이드 (어플쪽과 프레임웍쪽 코드일부)는 JAVA로 되어있습니다. 물론 JNI로 C로 만들수도있지만 이건
좀 아니고요. 그러므로 JAVA에 대해서 빠삭하게 아는것이 베이스가 탄탄해진다 볼수있습니다. 추천해주고 싶은거로는
오라클 교육센터에서 하는 JAVA교육이 있는데 단계별로 나뉘어졌고, 요즘 안드로이드 때문에 이와 연계된 교육도 한다고들었습니다.
광고하는건 아니고 저도 지금 다니는회사에서 교육을 보내줘서 들어봤는데 JAVA에 대해서 다시 보게되었습니다. 특히 JVM쪽
에 대한 내용을 듣고나면 한단계 레벨업하지 않을까 싶네요^^;
안드로이드가아니라도 JAVA는 앞으로도 수년이상 쓰이게될테이 베이스를 탄탄하게 하는게 좋을거같습니다(저는 C개발자출신으로
JAVA로 넘어온케이스라 베이스가 탄탄치 못해 좀 고생합니다 ㅠㅠ)
3. 안드로이드 기반 기기가 굉장히 다양해서, 어플리케이션 제작에 어려움이 있다고 하시던데, 아이폰 쪽 개발에 비해 많이 힘든가요?
기반 기기가 다양하긴 하지만 이로인해 고생하는팀은 시스템파트(디바이스드라이버)나 프레임웍쪽 파트고요
어플쪽은 GUI 에서 해상도나 UI위치같은거외에는 거의 모델별로 공통되는 부분이 많습니다.
그런데 제 생각엔 이제 고졸이고 대학준비중일텐데 (아닌지는 모르겠네요) 어찌됐든 군대문제를 먼저 해결하고나서 시작하세요
방위산업체를 가게된다면 문제 안되지만 현역입대라면 지금 아무리 용쓰고 공부해도 2년동안 거의 까먹고(감각만 남아있음)
2년이라는 시간동안 기술이 많이 달라져서 다시 딴거 배워야될지도 모르거든요.
그리고 개인적으로 4년제 대학은 좀 못마땅하긴 하지만 10년 개발자 기간을 위해 나와야된다고 생각합니다.
초봉부터 차이나며 여러가지고 불평등해지거든요.
아이폰은 안해봐서 모르겠네요.
1. 제가 일하는 곳을 대상으로 말씀드리면 가장 많이 팔린폰을 위주로합니다. 일하는 곳에따라 다를꺼같군요.
2. 기본은 알아야겠지만 마스터 할수있을까요? 마스터후에 공부하면 좋겠지만 자바 마스터할수있는 시간이 될지 궁금하네요.
일단 책한권을 보고 안드로이드를 해보는것이 어떨까요.
3. 아이폰이나 안드로이드나 각각 힘든점이 있고 편한점도 있는것이라 뭐라고 말하기 좀 어렵네요.