문제

전문

동적 웹사이트를 구축하려면 최소한 4가지 언어를 마스터해야 합니다.

  • 웹페이지 구조를 위한 HTML
  • 레이아웃과 디자인을 위한 CSS
  • 상호작용을 위한 JavaScript
  • 비즈니스 규칙 또는 동적 기반 데이터를 위한 언어

또한 영구 저장을 위한 SQL, 세션 및 캐싱을 위한 Memcache, 많은 다양한 콘텐츠 관리 시스템.또한 웹 애플리케이션을 구축할 때 OpenID, Facebook, Twitter, OpenSocial과 상호 작용하는 것도 고려해야 합니다.

전체적으로는 완전 엉망이에요!

두 가지 목표를 고려한다면:

  • 아이들에게 웹 개발 가르치기
  • 팀으로서 생산성 유지

질문

HTML + CSS + Javascript + (여기에 고급 언어를 입력하세요., PHP가 선호됨)?


배경

  1. 저는 Broadvision, Autonomy, Enterprise Java 및 Oracle과 같은 기술을 사용하여 프로젝트 리더 및 개발자로서 15년 이상의 경험을 보유한 소프트웨어 엔지니어입니다.

최근 몇 년 동안 저는 Drupal이나 CakePHP와 같은 PHP 프레임워크를 사용하여 커뮤니티 웹사이트 개발에 집중해 왔습니다.나 좋다 웹 개발과 관련된 기술 간의 임피던스 불일치를 즐기십시오.그래도 내가 내린 피할 수 없는 결론은 더 좋은 방법이 있을 거에요.

  1. 저는 두 아들(13살과 9살)의 아버지입니다. 아들들이 프로그래머가 되는 것은 바라지 않지만, 아들들이 컴퓨터를 게임기 이상의 존재로 이해하기를 바랍니다.나는 그들이 자신을 표현하기 위해 웹 개발에 약간 손을 대도록 동기를 부여하는 것을 좋아합니다.

내가 그들에게 단편적인 부분을 보여줄 때마다 나는 그들이 일요일 오후 한두 시간 안에 "흥미로운" 결과를 만들 수 있는 도구 세트를 갖고 싶어합니다.

도움이 되었습니까?

해결책

"연결 웹 프로그래밍을 더 쉽게 만들기 위해 고안된 새로운 프로그래밍 언어입니다...Links는 세 계층 모두에 단일 언어를 제공하여 임피던스 불일치 문제를 완화합니다.시스템은 각 계층에 대한 코드를 생성합니다.예를 들어 일부 코드를 브라우저용 Javascript로 변환하고, 일부 코드를 서버용 바이트코드로, 일부 코드를 데이터베이스용 SQL로 변환합니다."

처음에는 이 글을 게시할 생각이 없었습니다. 왜냐하면 이것은 생산 시스템이 아닌 연구 프로젝트이기 때문입니다.하지만 "그렇습니다. 처리하세요"라는 대답은 모두 반례를 요구했습니다.

다른 팁

GWT 높은 수준의 툴킷이되는 곳으로 가서 Java를 작성하여 JavaScript를 생산할 수 있습니다.

웹 프로그래밍은 본질적으로 여러 분야의 공예품입니다.

이에 대한 주된 이유는 우려가 분리 되었기 때문입니다. HTML과 CSS 및 JavaScript, SQL 등이 한 언어로 함께 뭉치지 않는 이유는 각각 분리 된 목표, 경고, 함정 및 강점을 가지고 있기 때문입니다.

동일한 소스 파일에서 SQL, CSS, JavaScript 및 PHP 코드가 혼합 된 사이트를 디버깅하려고한다고 상상할 수 있습니까? 당신은 이미 그렇게하는 불행이 있었을 것입니다. 안타깝게도 말 그대로 이와 같이 쓰여진 수천 개의 사이트가 있으며, 프리젠 테이션, 데이터 및 구조의 지저분한 합병을 디버깅하거나 추가하려는 완전한 악몽입니다.

대체로 완전히 엉망입니다! 아이들에게 웹 개발을 어떻게 가르쳐야합니까?

가장 중요한 것은 프로그래밍의 기초를 가르치고 고수하게 만드는 것입니다. 변수, 논리, 포인터, 메모리 관리, 알고리즘, 데이터 구조 등

프로그래밍의 기본 사항이 있으면 멀티 형 언어로 작업하고 새로운 언어를 집어 들고 시간에 쉽게 바꿀 수 있습니다. 이것은 웹 프로그래밍과 같은 지속적으로 진화하고 추세 기반의 무언가에 대한 귀중한 기술입니다.

제 생각에는 프로그래밍을 처음 접하는 사람들은 예를 들어 C와 같은 저소득 언어로 시작해야합니다. 사람들은 프로그래밍의 본질적이고 기본적인 개념에 도달해야하며 PHP 또는 Python과 같은 더 높은 수준의 언어를 보여주기 전에 무대 뒤에서 일어나는 일에 대한 지식을 얻어야합니다.

교육 프로그래밍에 대한 이러한 태도는 더 나은 웹 개발자를 번식시키고 관심이나 지능이없는 사람들을 제거 할 입국의 장벽을 제공 할 것이라고 생각합니다. 이러한 유형의 태도의 결과는 더 나은 개발자, 더 나은 소프트웨어, 궁극적으로 더 강력한 언어와 도구가 될 것이라고 생각합니다.

아이들에게 웹 개발을 어떻게 가르쳐야합니까?

웹 개발에있는 아이들의 군대는 우리의 직업을 악화 시켰습니다. 지금부터 우리는 자신을 프로그래머라고 부르는 동안 우리가 그들과 거리가 멀어지고 괜찮은 임금을 받기가 점점 어려워지고 있습니다.

마스터 할 많은 언어와 기술? 좋은 일입니다. 개발자의 순위에 합류하기위한 진입 장벽이 있도록하십시오.

추가 : 다음 의견을 따르면 나는 내가 완전히 명확하게 만들지 않았다는 것을 알 수 있습니다. 나는 나이에 대해 아무 말도하지 않습니다. 10, 30, 50 또는 80은 모두 태도에 관한 것입니다. 사람이 일부 디자이너 또는 CMS에서 마우스로 컨트롤을 움직이는 것보다 직업에 훨씬 더 많은 것이 있다는 사실을 이해하고 받아들이는지 여부. CS, 알고리즘, 데이터 구조, 데이터베이스, 아키텍처, 확장 성, 유지 보수, 성능, 확장 성, 마케팅, 마케팅, 마케팅 및 전문 소프트웨어 개발자의 워크숍에 포함 된 많은 지식이 있습니다. 나는 그 사람을 무지하고 스스로 교육하고 점점 더 능숙해지기 위해 노력하지 않으며 직업에 속하지 않습니다. 그리고이 의견을 편향시킵니다.

내가 얻을 수있는 가장 가까운 것은 .NET입니다. 많은 언어에는 많은 프레임 워크가 있지만, 내가 아는 것은 모든 것을 절대적으로 처리하지 않습니다. 그 외에도 당신은 아이들에게 프로그래밍이 공원에서 산책한다고 설득해서는 안됩니다. 어려운 직업이며 많은 공부와 유지가 필요합니다. 우리는 오늘 여기에 있고 내일 사라진 기술과 함께 일합니다.

당신이 그것에 대해 생각한다면, 프로그래밍은 목공이나 항공과 다르지 않습니다. 당신이 선택한 모든 직업은 당신이하는 일에 더 나은 다른 것들을 배워야합니다.

아이들에게 웹 개발을 어떻게 가르쳐야합니까? 와우, 그것은 가시가 많은 것입니다. 수술, 지적 재산법 또는 토목 공학을 가르치는 방법은 무엇입니까? 또는 그 문제에 대해 자동 역학, 배관 또는 일반 계약?

세서미 스트리트 테이프로 터지는 것에 대해 생각해 보셨습니까?

엘모는 자신의 직업을 사소하게 할 때 그것을 좋아하지 않습니다.

소프트웨어 산업은 자격이없는 개인으로 고통받지 않고 품질이 좋지 않은 제품을 만들고 동시에이 직업이 진정한 엔지니어링 분야가되는 것을 막고 있습니다. 이것은 인증을받는 것이 아닙니다. 하나님의 사랑을 위해, 소프트웨어 개발을 '가르치지 마십시오'. 그들에게 훌륭한 소프트웨어를 만드는 것은 과거와 현재 기술에 대한 수년간의 경험과 풍부한 지식의 결과로 만 나옵니다. 당신이 할 수있는 최악의 상황은 또 다른 반 구운 개발자가 그들과 함께 일하는 다른 사람들을위한 작업을 창출하는 것입니다. 그들에게 교육을 받으라고 말하십시오. 나는 이것이 당신이 듣고 싶었던 대답이 아니라는 것을 알고 있지만, 나는 이것을 읽기를 원했습니다.

웹 개발의 문제점은 원래 오늘날 사용되는 것을 위해 설계되지 않았다는 것입니다. 우리는 HTML+CSS+JavaScript와 함께 브라우저 내부에 풍부한 클라이언트 응용 프로그램을 구축합니다. 그렇습니다. 효과가 있지만 특히 성가신 브라우저가 무력화되어있는 고통입니다. 플래시와 실버 라이트의 존재는 이것을 증명합니다. 브라우저 내부에 하나의 단일 기술로 앱을 구축 할 수 있습니다. 콘텐츠 용 플러그인이 필요한 단점은 분명합니다.

언어는 당신의 걱정 중 가장 적습니다. 그들이 복잡한 문제 도메인입니다. 다른 언어를 사용하면 실제로 A) 경계를 명시 적으로 만들고 b) 언어를 도메인에 최적화 할 수 있기 때문에 실제로는 더 관리하기 쉽습니다.

프로그래밍 (PHP/JS) 및 문서 형식 (HTML/CSS)은 두 가지 다른 것입니다. PHP 및 JS에서 동시에 프로그램을 배우는 것도 어려울 것입니다.

처음에는 클라이언트의 HTML 및 JS에 집중해야합니다. 그런 다음 프로그래밍 할 수 있습니다 서버의 JavaScript 또한. 이렇게하면 하나의 프로그래밍 언어 만 만들고 CSS보다 HTML에 중점을 둡니다.

JS와 HTML의 기본 사항을 알게되면 PHP, Ruby 등과 같은보다 널리 사용되는 서버 측 프로그래밍 언어 및 CSS를 가르 칠 수 있습니다.

장고 깨끗함을 통해 당신을 데려 갈 수 있습니다. 생산성에 중점을 둡니다. 가르침은 다른 언어/프레임 워크보다 쉽지는 않지만 이런 식으로 살펴보십시오.이 도구를 가르쳤을 때 학생들은 그것이 얼마나 쉬운 지에 대한 지식이 잘 갖추어져 있습니다. ~해야 한다 이다. 그들은 Django를 배운 후 Java Servelets 또는 이와 유사한 악몽을 결코 받아들이지 않을 것입니다.

OPA를 확인하십시오 : http://opalang.org/

이것은 올라오르는 웹 개발 기술입니다. 매우 유망 해 보입니다. 나는 지난 몇 년 동안 많은 웹 개발을 해왔으며, 예측과 새로운 프레임 워크/언어/기술이 웹 사이트가 ~ 5-10 년 안에 개발되는 주요 방법이 될 예정이라면 나는 말할 것입니다. OPA가 될 것입니다.

문서는 훌륭하고 커뮤니티는 훌륭합니다. 프로젝트 작업을하는 팀이 묻는 질문에 대한 튜토리얼과 응답은 훌륭합니다. 전반적으로 그들은 타의 추종을 불허하는 것으로 보이는이 새로운 프레임 워크를 개발하는 것과 관련하여 세부 사항에 관심이있는 것 같습니다.

마스터하는 많은 기술은 좋은 일이 아닙니다. 우리는 엘리트 주의자들의 말에 관계없이 웹에 대한 시각적 기본이 필요합니다.

다른 목적으로 다른 언어가 필요합니다. 대부분의 웹 애플리케이션에는 실제로 약간 진행되고 있으므로 다른 언어와 솔루션이 필요합니다.

목표가 단일 언어로 통일하는 것이면 그렇게 할 수 있습니다. 서버에서 JavaScript를 사용한 다음 사용 페이지를 빌드 할 수 있습니다. document.createElement() 그리고 스타일을 직접 적용하십시오 styles 재산. 서버에서 데이터를 JavaScript로 파일에 직접 저장하십시오.

분명히 이것은 잘 작동하지 않을 것입니다. HTML은 완벽하지는 않지만 너무나 유비쿼터스 인 이유가 있습니다. 단순하고 잘하는 일을합니다. CSS는 복잡하고 너무 단순하지만, 디자인을 표현하기 위해 우선적 인 규칙을 정의한다는 근본적인 아이디어는 건전합니다. 그리고 SQL은 때때로 이해하기 어려운 고통 일 수 있지만, 이런 식으로 데이터베이스 쿼리를 표현하는 것은 표현력이 있으며 실제로 잘 작동합니다.

즉, 나는 하나의 아키텍처가 있거나 있어야한다고 말하는 것이 아닙니다. 없어야합니다. 각 프로젝트는 요구 사항에 따라 아키텍처를 사용해야합니다.

다음 프로젝트에서 단순화를 시도하십시오. 실제로 데이터베이스가 필요합니까? GWT, 애플릿, 플래시 또는 .NET와 같은 것을 사용하여보기 레이어를 결합하여 단순화 할 수 있습니까? 브라우저 (CSS, HTML 및 JavaScript 복잡성을 소개하는)에서 콘텐츠를 제공해야합니까, 아니면 응용 프로그램 만 작성할 수 있습니까?

귀하의 접근 방식을 재고해야 할 수도 있다고 생각합니다.제 생각에는 이것을 그대로 받아들이십시오. 하지만 이 순서가 더 잘 작동할 것이라고 생각합니다.

최우선 사항: (특별한 순서는 없습니다)

  • 문제 해결 능력을 키우세요
  • 팀으로서 생산성을 높이세요

다음:

  • 기본 프로그래밍 기술(PHP, Python 등)

개인으로서 그리고 팀으로서 문제를 해결하는 방법을 알고 나면 다음과 같은 세부 사항으로 넘어갈 수 있습니다.

  • 클라이언트/서버 모델
  • 마크업(HTML, XHTML, XML 등)
  • 스타일링(CSS)
  • 클라이언트측 스크립팅(JavaScript/jQuery)
  • 서버측 스크립팅(PHP, Ruby 등)

처음부터 끝까지 뛰어들기보다는 관련된 내용에 대한 지식을 하나씩 쌓으세요. 그들은 금방 압도당할 것입니다.

이 시점에서 파일 I/O 및 데이터베이스와 같은 기능을 소개할 수 있습니다.

이는 그들에게 상당히 포괄적인 기술 세트를 제공할 것입니다.여기에서 그들은 실제로 학습을 시작할 수 있습니다.

또한 영구 저장을 위한 SQL, 세션 및 캐싱을 위한 Memcache, 콘텐츠 관리 시스템의 API, OpenID, Facebook, Twitter, OpenSocial 등을 처리해야 할 수도 있습니다.흥미로운 것을 만들기 위해.

이것들은 그 자체로 전체 주제이므로 한 덩어리로 모두 물릴 수는 없습니다.특히 이 사람들을 0에서 데려오는 경우에는 더욱 그렇습니다.흥미로운 것을 만들기 전에 평범한 것을 만드는 법을 배워야 합니다.

HTML5 아마도 Flash나 Silverlight보다는 여러분이 찾고 있는 것과 더 비슷할 것입니다. 그러나 아직은 아직은 아닙니다...지원이 구축되고 있지만.

베이비 스텝, Olav - 만약 이것이었다면 매트릭스 모든 정보를 한 번에 다운로드할 수 있지만 아직은 완료되지 않았습니다. ;-)

현재, 그리고 가까운 미래에 웹 개발은 흥미로운 사용자 경험을 제공하기 위해 함께 작동하는 다양한 기술의 시너지 효과입니다.

글쎄, 그건 내 2센트야

웹 개발의 다중 징계 특성은 일하는 것이 기쁨을주는 것 중 하나입니다. 특히 팀 환경에서.

팀으로서 잘 일하기 위해 UI/그래픽 사람들부터 DBAS 및 SYS Admins에 이르기까지 다양한 전문 지식을 가진 사람들과 자연스럽게 모입니다. 그룹의 단일 계층 내에서도 (예 : 백엔드 프로그래머) 각 사람은 일반적으로 다른 세트를 전문으로합니다. 예를 들어 일부 사람들은 UI에 대한 경험이 더 많고 다른 사람들은 데이터를 향해 더 많은 경험을 할 수 있습니다.

나는 일부 미들웨어 애플리케이션에서 일하는 10 명의 Java 프로그래머의 실내에서 일하는 것과 비교할 때 언제든이 품종을 취할 것입니다.

단순히 동적 웹 사이트를 작성하도록 가르치고 싶다면 W3Schools.com의 HTML 튜토리얼을 통해 설정하고 일단 완료되면 PHP와 함께 포함하고 설정할 수있는 괜찮은 스타일 시트를 찾으십시오. 그것은 그들을 취미로 만들고 달리게 될 것이며, 더 많은 일을하고 싶다면 CSS 및 JavaScript와 같은 추가 지식을 함께 시작할 수 있습니다.

Ruby on Rails는 이러한 모든 것을 통합하는 방향으로 나아가고 있지만 CSS의 경우에는 어려움을 겪게 됩니다(물론 CSS를 쓸모없게 만드는 RoR용 프레임워크가 몇 개 있을 수 있지만 다른 마크업 언어가 있다고 생각합니다). 그리고 여전히 Javascript가 필요합니다(비록 많은 Javascript와 모든 DB 코드를 작성하지만).

반면에 귀하의 자녀에 대해서는 다음과 같습니다.프로그래밍은 프로그래머를 위한 것이다.일요일 오후에 몇 시간 안에 무언가를 조립하려면 프레임워크를 알고, 플러그인을 구입하고, 별다른 작업 없이 모든 것을 시작하고 움직여야 합니다.Drupal이나 Joomla와 같은 곳에서는 템플릿(Joomla의 경우 수백 팩을 구입할 수 있음)과 모든 종류의 작업을 수행하는 플러그인을 판매합니다.그리고 이것이 실패하면 아이들은 아마도 ODesk를 사용하여 프레임워크에서 작업을 수행하기 위해 100달러를 지불하는 방법을 알아야 할 것입니다.프로그래머가 되고 싶다면 프로그래밍을 배우는 것이 좋습니다.그렇지 않으면, 좋은 프로그래머를 고용하거나 미리 완성된 좋은 구성 요소를 구입하고 이를 수행할 현금을 확보하는 데 필요한 것이 무엇인지 배우는 것이 가장 좋습니다.

아이들에 대한 마지막 요점:비디오 게임을 하게 해주세요.이는 컴퓨터 측면에서 미래에 어떤 일이 일어나든 그들이 얻을 수 있는 최고의 훈련입니다.비디오 게임을 통해 컴퓨터로 조사하고, 놀고, 휴식을 취할 수 있습니다.일단 그것을 갖고 나면 HTML, CSS, Javascript 및 일부 애플리케이션 스택을 배우는 것은 매우 쉽습니다.

Angularjs 옵션이 될 수 있습니다. 그것은 단일 페이지 응용 프로그램을 위해 정해져 있으며 Nodejs-Stack에서 실행되며 일부 템플릿 자바 스크립트 "Magic"을 수행합니다.

예제 (템플릿/코드) : 입력 필드에서 헤딩 (H1)까지 값을 (자동 생성-클라이언트 사이드 -JS를 통해) 바인딩합니다. 입력 필드에 무언가를 입력하면 제목의 텍스트가 업데이트됩니다. 그리고 당신은 Frontend-JS를 쓸 필요가 없습니다.

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top