프로그램머가 되려면? |
---|
초반에 액셀로부터 함수 셀수를 능숙히 다를줄 알아야 리눅스에는 빨리 실현되리라 믿엇습니다 액셀이 배우는 과정이란 고등학교를 제대로 졸업못해서인지 힘들며 올라 가지 못할 나무는 쳐다보나마나 안될것이라는 허무한 생각이 드는군요 고등학교를 대한민국에 와서 다니라는 건데 그러다보면 3년이라는 긴긴세월이 흘러가니 고심이 많고 이쪽으로는 듣자니 돈주며 전문양성에 비해 실무와 학원을 통해 강의를 많이듣고 하다보면 적응이 된다고 합니다 비전을 계기삼고 배워볼 자신이 잇으므로 동지회에서 이분야 교육원을 알아주시면 감사하겟습니다
신고 0명
게시물신고
|
욕망만 가지고는 절대로 성공할수 없습니다.
적성검사나 mbti 혹은 에니어그램으로 테스트를 해보시고 상담도 받아보신다음 결정하시기 바랍니다.
그리고 엑셀 같은 문서 편집 프로그램을 말씀 하신거라면 그런 분야는 프로그래머라고 부르지 않습니다.
자 일단 프로그래머는 두어가지로 나눌수 있습니다.
1. PC(컴퓨터)상에서 운용되는 소프트웨어를 작성하고 만드는 프로그래머
2. 핸드폰,MP3 등 PC가 아닌 전자제품에서 운용되는 소프트웨어를 작성하는 프로그래머
1의 경우에는 아주 많은 경험과 또한 오랜 교육기간을 요구 합니다.
접근하는 방식도 굉장히 광범위하여 이 분야로 취업을 하려면 취업의 문도 좁거니와 많은 시간이 소비 됩니다.
2의 경우도 1의 경우와 마찬가지로 많은 경험과 오랜 교육기간을 요구 합니다.
그러나 1의 경우와는 다르게 아주 광범위한 적용분야가 있어서 선택적으로 교육을 받으실수 있습니다.
핸드포이나 PDA ,네비게이션 같은 고급 전자 제품에 사용되는 소프트웨어를 다룰려면 1의 경우와 비슷한 경험과 교육기간이 필요하지만 MCU(4/8bits)를 이용한 응용제품을 개발하는 프로그래머가 될려면 그보다는 적은 노력과 시간으로 취업을 할수 있을것이라고 생각 됩니다.
이와 관련된 교육을 하는 기관으로 비트아카데미가 유명합니다.
http://www.bitacademy.net
이곳에서 C-언어부터 시작해서 임베디드(Embadded system)에 대해서 6개월 과정 이상을 수료하시고 나면 산업 현장에서 근무하실 기본 실력을 갖추실수 있을겁니다.
그러나 잘 아시겠지만 공부라는 것은 얼마나 많은 노력을 하느냐에 따라서 결과가 달라집니다.
그리고 선택하시기 전에 꼭 비트아카데미에서 상담을 받으셔서 국비지원이 가능한지에 대해서 꼭 문의 하시기 바랍니다.
남한 정착에 성공하기고 꼭 원하시는 프로그래머가 되실수 있기를 바랍니다.
'엑셀'같은 프로그램도 고급 과정으로 가면 상당히 난이도가 있습니다. 하지만, 그건 그저 '컴퓨터 활용능력' 차원의 문제이지, '프로그래머'의 길은 아닙니다.
그리고 암연소혼님께서 '비트 아카데미'를 소개해 주셨는데...
저도 그 곳에서 몇 개월 공부한 경험이 있기에 사족을 달자면요.
기초적으로 C-언어부터 공부를 하지만, 절대 기초부터 생각하시면 안됩니다. 기본적으로 진도를 따라가기 위해선 적어도 동네 전산학원에서 배우는 C-언어 과정(초급)은 우스울 정도는 돼야 합니다. 그래도 머리 쥐날 정도니까 참고하세요.
(물론, 제가 공부했던 시기가 2001년 정도였으니 지금은 과정이나 난이도가 많이 바뀌었을 수도 있겠네요.)
그리고 흔히 프로그래머를 포함해서 'IT전문가'로 부르고는 있지만 그 세부적인 내용으로 들어가면 굉장히 다양한 분야가 있습니다.
물론, 공부를 시작하기 전부터 목표를 잡으면 좋겠지만, 제반 지식이 부족한 상태에서는 이것조차도 쉽지 않은 게 사실입니다. 그러나 지레 겁 먹을 필요는 없습니다. 그런 건 기초 과정을 공부해 가면서 차차 알아가며 결정해도 늦지 않습니다. 중요한 건 의지지요.
적성에 대한 부분도 무시할 수 없는데, 이 부분도 애매모호하긴 마찬가지죠. 해보지도 않고 그게 자신에게 맞을 지, 맞지 않을 지를 알기가 쉽지 않으니까요.
그래서 제 생각엔 일단 기초과정을 공부하면서 과제물을 해결하기 위해 머리를 쥐어 싸매고, 고민하느라 밤도 새워 보고 하다 보면, 이 길이 자기의 적성에 맞는지 아닌지를 어느 정도는 가늠할 수 있지 않을까 싶습니다. 저도 그런 과정을 통해 많은 걸 느꼈거든요.
참, 그리고 좀 불합리하지만 간과할 수 없는 현실적이 문제로 나이도 반드시 감안해야 합니다. 특히, IT계열은 다른 분야에 비해 연령대가 많이 낮은 편입니다. 그러므로 연령대가 높다면 경력직이 아닌 이상 취업이 상당히 어려울 수 있으니 꼭 참고 하세요.
저도 잘 다니던 회사 그만두고 한때 프로그래머를 꿈꾸며 공부했었습니다. 물론, 지금은 여의치 않아 다른 일을 하고 있지만, 지금도 그때의 결정을 후회하지는 않습니다. 가장 늦었다고 생각할 때가 가장 빠르다는 것 아시죠?
거북이님, 꼭 바라는 바를 이루시기 바랍니다. 화이팅~
function cutstr(long_str, cutting_len)
dim i, short_str, tail
tail = "..."
long_str = trim(long_str)
for i = 0 to cutting_len-1
if asc(mid(long_str, i+1, 1)) >= 128 then
kor = kor + 1
else
eng = eng + 1
end if
next
if len(long_str) > cutting_len then
if kor mod 2 = 1 then
cutting_len = cutting_len - 1
end if
short_str = mid(long_str, 1, cutting_len)
cutstr = short_str & tail
else
short_str = mid(long_str, 1, cutting_len)
cutstr = short_str
end if
end function
' --------------------------------------------------------
' 정규표현식을 이용한 대치
' --------------------------------------------------------
Function ereg_replace(pattern, strReplace, text)
Dim eregObj
' Create regular expression
Set eregObj= New RegExp
eregObj.Pattern= pattern ' Set Pattern(패턴 설정)
eregObj.IgnoreCase = False ' Set Case Insensitivity(대소문자 구분 여부)
eregObj.Global = True ' Set All Replace(전체 문서에서 검색)
ereg_replace = eregObj.Replace(text, strReplace) ' Replace String
End Function
Function eregi_replace(pattern, strReplace, text)
Dim eregObj
' Create regular expression
Set eregObj= New RegExp
eregObj.Pattern= pattern ' Set Pattern(패턴 설정)
eregObj.IgnoreCase = True ' Set Case Insensitivity(대소문자 구분 여부)
eregObj.Global = True ' Set All Replace(전체 문서에서 검색)
eregi_replace = eregObj.Replace(text, strReplace) ' Replace String
End Function
Function ereg(patrn, strng)
Dim regEx, Match, Matches, i, regs() ' Create variable.
Set regEx = New RegExp ' Create a regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = False ' Set case insensitivity.
regEx.Global = True ' Set global applicability.
Set Matches = regEx.Execute(strng) ' Execute search.
regs(0) = strng
i = 1
For Each Match in Matches ' Iterate Matches collection.
regs(i) = Match.Value
i = i+1
Next
ereg = regs
End Function
Function eregi(patrn, strng)
Dim regEx, Match, Matches, i, regs() ' Create variable.
Set regEx = New RegExp ' Create a regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = True ' Set case insensitivity.
regEx.Global = True ' Set global applicability.
Set Matches = regEx.Execute(strng) ' Execute search.
i = 1
regs(0) = strng
For Each Match in Matches ' Iterate Matches collection.
regs(i) = Match.Value
i = i+1
Next
eregi = regs
End Function
' --------------------------------------------------------
' Tag를 삭제한다.
' --------------------------------------------------------
Function strip_tag(atcText)
atcText= eregi_replace("<", "<", atcText)
atcText= eregi_replace(">", ">", atcText)
atcText= eregi_replace("<html(.*|)<body([^>]*)>","",atcText)
atcText= eregi_replace("</body(.*)</html>(.*)","",atcText)
atcText= eregi_replace("<[/]*(div|layer|body|html|head|meta|form|input|select|textarea|base)[^>]*>","",atcText)
atcText= eregi_replace("<(style|script|title|link)(.*)</(style|script|title)>","",atcText)
atcText= eregi_replace("<[/]*(script|style|title|xmp)>","",atcText)
atcText= eregi_replace("([a-z0-9]*script:)","deny_$1",atcText)
atcText= eregi_replace("<(\?|%)","<$1",atcText)
atcText= eregi_replace("(\?|%)>","$1>",atcText)
' Tag가 제거된 문자열을 리턴한다.
strip_tag = atcText
End Function
' --------------------------------------------------------
' 문서 내용에 있는 Url를 찾아내어 자동으로 링크를 구성하는 함수
' --------------------------------------------------------
Function auto_link(text)
Dim regex_file, regex_http, regex_mail
regex_file= "gz|tgz|tar|gzip|zip|rar|mpeg|mpg|exe|rpm|dep|rm|ram|asf|ace|viv|avi|mid|gif|jpg|png|bmp|eps|mov"
regex_http = "(http|https|ftp|telnet|news):\/\/(([\xA1-\xFEa-z0-9_\-]+\.[][\xA1-\xFEa-z0-9:;@=_~%\?\/\.\,\+\-]+)(\/|[\.]*[a-z0-9]))"
regex_mail = "([\xA1-\xFEa-z0-9_\.\-]+)@([\xA1-\xFEa-z0-9_\-]+\.[a-z0-9\-\._\-]+[\.]*[\xA1-\xFEa-z0-9\?=]*)"
' img tag 와 a tag 의 경우 링크가 여러줄에 걸쳐 이루어져 있을 경우
' 이를 한줄로 합침 (합치면서 부가 옵션들은 모두 삭제함)
text = eregi_replace("<(a|img)[^>]*(href|src)[^>]*(" & regex_http & "|mailto:" & regex_mail & ")[^>]*>","<$1 $2=""$3"">", text)
' 특수문자와 링크시 target 삭제
text = eregi_replace("&(quot|gt|lt)","!$1", text)
' html 사용시 Link 보호
text = eregi_replace("href=""(" & regex_http & ")""[^>]*>","href=""$2_orig://$3"" target=""_blank"">", text)
text = eregi_replace("href=""mailto:(" & regex_mail & ")"">","href=""mailto:$2#-#$3"">", text)
text = eregi_replace("(background|codebase|src)[ \n]*=[\n""' ]*(" & regex_http & ")[""']*","$1=""$3_orig://$4""",text)
'링크가 안된 Url및 Email Address 자동 링크
text = eregi_replace("(" & regex_http & ")" ,"<a href=""$1"" target=""_blank"">$1</a>", text)
text = eregi_replace("(" & regex_mail & ")","<a href=""mailto:$1"">$1</a>", text)
' 보호를 위해 치환된것 복구
text = eregi_replace("!(quot|gt|lt)","&$1", text)
text = eregi_replace("(http|https|ftp|telnet|news|mms)_orig","$1", text)
text = eregi_replace("#-#","@",text)
' File Link시 Target을 삭제
text = eregi_replace("(\.(" & regex_file & ")"") target=""_blank""","$1", text)
auto_link = text
End Function
' --------------------------------------------------------
' Quick Sort
' --------------------------------------------------------
Function QuickSort(vec, loBound, hiBound)
Dim pivot,loSwap,hiSwap,temp
' QuickSort는 정렬이 안된 배열을 정렬할 때 가장 빠른 방식이다.
' 정렬되어야 할 아이템이 두 개일 경우
if hiBound - loBound = 1 then
if vec(loBound) > vec(hiBound) then
temp=vec(loBound)
vec(loBound) = vec(hiBound)
vec(hiBound) = temp
End If
End If
' 정렬되어야 할 아이템이 세 개 이상일 경우
pivot = vec(int((loBound + hiBound) / 2))
vec(int((loBound + hiBound) / 2)) = vec(loBound)
vec(loBound) = pivot
loSwap = loBound + 1
hiSwap = hiBound
do
' 적절한 loSwap 찾기
while loSwap < hiSwap and vec(loSwap) <= pivot
loSwap = loSwap + 1
wend
' 적절한 hiSwap 찾기
while vec(hiSwap) > pivot
hiSwap = hiSwap - 1
wend
' loSwap이 hiSwap보다 작으면 값 교체
if loSwap < hiSwap then
temp = vec(loSwap)
vec(loSwap) = vec(hiSwap)
vec(hiSwap) = temp
End If
loop while loSwap < hiSwap
vec(loBound) = vec(hiSwap)
vec(hiSwap) = pivot
' QuickSort의 백미 : 재귀 호출(Recursively call function)
'첫 번째 섹션에서 두 개 또는 그 이상의 아이템
if loBound < (hiSwap - 1) then Call QuickSort(vec,loBound,hiSwap-1)
'두 번째 섹션에서 두 개 또는 그 이상의 아이템
if hiSwap + 1 < hibound then Call QuickSort(vec,hiSwap+1,hiBound)
End Function
이런것들을 해석좀바랍니다
첫번째 cutstr 함수는 문자열을 길이만큼 자르는 것,
두번째 ereg_replace 함수는 보통 문자열 치환이라고 부르는 기능의 함수로써 특정 문자패턴을 원하는 다른 패턴으로 바꿔주는 것,
세번째 strip_tag 는 주석에 나온것처럼 문자열중에 태그를 없애주는 것,
네번째 auto_link는 문자열중에 "http://naver.com" 같은 문자열이 존재할 경우 "<a href='http://naver.com' target='_blank'>" 바꿔서 자동으로 링크를 만들어주는 것,
다섯번째 QuickSort는 데이터를 정렬하는 함수입니다.
이 코드는 ASP 언어로써 웹게시판 같은 프로그램에서 쓰이는 함수들이네요.
자세한 문법설명은 ASP강좌로 유명한 태요넷의 글들을 읽어보시는걸 추천합니다.
http://www.taeyo.pe.kr/Columns/List.aspx?SEQ=12&IDX=3
엑셀이라는 프로그램은 리눅스가 아닌 윈도우 운영체제에서만 돌아가는 데이터관리와 정산기능을 수행하는 하나의 프로그램일뿐입니다.
프로그래머라는 하나의 분명한 목표를 세우신건 지금이라도 참 잘하신것 같습니다.
한국에는 프로그래머 인력이 많이 부족한 현실이기때문에 지금부터라도 얼마든지 도전하셔도 됩니다.
절차를 따져본다면, 아직 고등학교를 졸업하지 못하셨다면 학업부터 절차를 따라야 할것 같습니다.
먼저 고등학교를 졸업하신 다음, 대학교를 컴퓨터관련 전공으로 진학하거나 사정이 여의치 않을 경우 윗분께서 추천하신것처럼 인지도 있는 전문학원이나 실업자지원으로 무료로 다닐수있는 직업학교과정을 찾아 공부하시면 될 것 같습니다.
나이가 어떻게 되시는지 모르겠지만 아주 힘들지 않다면 고등학교 졸업을 필수과정이라고 생각하고 졸업하는 것이 평생 도움이 될듯합니다.
위에 적성얘기도 나왔는데, 프로그래머로써 필요한 적성이라면 평소 쉬지않고 학습하는 유연한 사고와 장시간 컴퓨터 앞에 앉아 일할수 있어야한다는 직업의 특성, 그리고 논리적인 생각... 등 여러가지가 필요한듯합니다만.. 가장 좋은건 직접 체험해보시거나 실무에서 일하는 분들의 얘기를 많이 들어보고 판단하는게 좋을것 같습니다.
하지만 흔히 프로그래머라면 C언어 등의 프로그래밍 언어를 사용하여 프로그램을 만드는 사람을 뜻합니다.
만약 엑셀 함수로 프로그램을 짤 능력이 되신다면 프로그래머의 자질을 가지고 계시다고 봅니다.
서로 사용하는 수단인 언어만 틀릴뿐이지 기본이 되는 논리/방법 등은 유사한 과정이라 봅니다.
대략 수학/논리/끈기를 좋아하신다면 프로그래머의 소질이 있다고 봅니다.
정식 프로그래머는 운영체제/엑셀/업무용/기기용/웹 등의 소프트웨어를 만드는 전문인력을 뜻 합니다.
좋은 교육기관을 찾으셔서 좋은 성과 가지시길..