다른 언어 패러다임을 배우면 프로그래밍 기술을 향상시킬 수 있습니까?


9

그렇다면 새로운 패러다임을 배우면 문제가 다른 패러다임 / 언어 / 기술에 있어도 프로그래밍 문제를 해결하는 방법이 어떻게 바뀌 었는지 말해 줄 수 있습니까?

정말 감사하겠습니다. 특정 방식으로 말해 줄 수 있다면, Y (예 : Scheme / Prolog / Lisp)를 학습함으로써 X (예 : JAVA / C # / C ++) 프로그래밍 기술이 어떻게 향상 되었습니까?

또한 어떤 패러다임을 제안하면 가장 좋은 프로그래머가되는 데 가장 도움이됩니까?

내 경험은 OOP, 명령형-절차 적, 템플릿 메타 프로그래밍 방식으로 만 구성되었지만 다른 언어를 배우는 것이 아니라 문제를 해결하기위한 다른 접근법을 배우는 것이 목표입니다.

감사!


1
나는이에 대한 답변이 울려 퍼지는 어떤 형태가 될 것으로 예상 .
R0MANARMY

답변:


7

나는 매년 적어도 1-2 개의 새로운 언어를 배우려고 노력합니다. 내가 얻은 가장 큰 문제는 문제 해결 방식을 바꾸어 놓은 기능적 언어 (F #)를 배우는 것입니다. 이제는 Linq를 많이 사용하는 C #에서 어떻게해야하는지 대신에 어떻게해야하는지 컴퓨터에 알려 주려고합니다. 이제 불변의 객체를 사용함으로써 얻을 수있는 이점을 알았습니다. 또한 높은 코딩 함수를 매개 변수로 사용하여 코딩 스타일이 변경 (개선)되었습니다.


1
내 파이썬 프로그래밍을 위해 Ditto. 내가 사용하는 기술을 배우지 못하면 (트리는 재귀 또는 수동 롤 버전을 암시합니다. 파서 생성기는 다음과 같이 구성됩니다. 트리 트리밍 및 파서 생성 코드를 모두 작성하는 데 비참하게 실패했을 것입니다. Haskell을 학습하여 파서 결합기 등에서 영감을 얻었습니다.

고마워, 내가 의심했던 것을 재확인 했어 ... 다시 한번 고마워!
Armando

2

물론. 배우는 모든 프로그래밍 언어에는 특정 작업을 수행하는 다른 방법이 있습니다. 어떤 것들이 당신을 미치게 할 것이고, 당신이 사랑할 것들과 다른 것들이 천천히 자랄 것입니다.

최소한 새로운 언어의 기초를 배우는 데 시간 낭비가 결코 아닙니다.


1

좋아, 여기에 내가 본 예가 있습니다.

우리가 가진 오래된 코드에 대한 프로젝트를 위해 비교적 오래된 언어 (VB6)를 배웠습니다.
이 언어는 매우 창 지향적이지만 .Net 프레임 워크에있는 것처럼 강력한 고급 클래스는 많지 않습니다.

나는 약간의 그림 조작을해야했고, 그것은 그림 조작을위한 Windows API 기능을 소개했습니다.

내가 .Net의 GDI 클래스를 더 잘 이해했다는 것을 알게 된 후에. 때로는 Windows API를 사용하는 것이 훨씬 빠릅니다 (기능 줄 바꿈 없음).

따라서 이전 코드를 배울 때도 여전히 다른 관점을 배우고 얻을 수 있음을 보여줍니다.


1

다른 언어 패러다임을 배우면 프로그래밍 기술을 향상시킬 수 있습니까?

내 경험상, 분명히 그렇습니다. 여러 가지 방법으로 문제를 공격하는 것은 도구 팔레트와 같습니다. 언젠가 당신이 (나처럼)이 다른 도구를 사용할 것입니다. 아니면 아닐 수도 있습니다. 모든 것이 다릅니다. 일부 모범들 :

언어는 일반적으로 독립적이지 않으며 환경과 함께 제공됩니다. 나는 awk 라고 알려진 이상한 언어를 배우는데 약간의 시간을 보냈다 . "정규 표현식"을 사용한 패턴 일치에 의존합니다. C ++ STL (매우 성공적이지 않음) 을 배우려고 노력하면서 맵에 대해 배웠습니다. 이 두 가지 개념을 결합하여 Pearl ( 텍스트 플랫폼에서 사용할 수있는 유일한 언어)로 텍스트 변환 유틸리티를 매우 빠르게 작성할 수있었습니다 .

대부분의 재미를 위해 나는 Erlang 을 배우려고 노력했다 . 여기에는 오류 처리 방법을 구현하는 OTP라는 함수 라이브러리가 있으며 때로는 실패하게하고 모니터를 다시 시작하는 것으로 알려져 있습니다. 필자는이 아이디어를 일부 영역에서 사용했으며 때로는 끝없는 테스트를 수행하는 대신 실패하게 만드는 경우가있었습니다.

Haskell을 배우려고 노력하는 것 (다시 성공적이지는 않음)은 문제를 공격하는 다른 방법에 대한 내 시선을 실제로 열었습니다. 함수형 프로그래밍은 내 생각에 원하는 단계를 작성하는 것이 아니라 원하는 결과를 나타내는 코드 작성으로 시작합니다. 이것이 실제로 더 나은 SQL 코드를 작성하는 데 도움이되었다는 것을 알았습니다.

최근에 나는 약간의 자바 스크립트를 시도했다. 그리고 노드로 알려진 환경을 찾았습니다. 소규모 가정 자동화 서버를 만드는 데 코드가 필요하지 않습니다.

여러 언어로 내 dabbling의 대부분은 사람들이 말하는 것에 대한 느낌을 얻기 위해 다소 얕은 leve에있었습니다. 실제로 생산할 수있는 언어는 거의 없습니다.


0

나는 또한 한동안 기능적 언어로 손을 대면서 많은 것을 배웠다. 그러나 내가 가져간 것은 동시성을 쉽게 만드는 방법뿐만 아니라 명령형 언어와 다른 방식으로 일하는 것에 대한 것이 아닙니다. 함수형 언어에서와 마찬가지로 명령형 언어로 쉽게 적용 할 수 있지만 어떤 이유로 든 명령형 언어로 본 대부분의 예제는 더 복잡했습니다. (다른 언어는 기능적 언어에서 훨씬 더 복잡한 것으로 판명되었습니다.)

새로운 언어에서 배운 또 다른 것은 추가 프로그래밍 패턴이었습니다. 나는 그들 중 다수에 대해 읽었지만 실제로 몇 가지 훌륭한 구현을보고 사용하면 유용하고 유용 할 때 유용하고 이해하기 쉽게 만들었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.