it-swarm-vi.com

Tại sao vấn đề là HTML và CSS không phải là ngôn ngữ lập trình?

Ví dụ ở đây:

Tôi nên biết ngôn ngữ nào nếu tôi quan tâm đến việc xây dựng các ứng dụng web?

Có, tôi hiểu rằng HTML và CSS không hoàn chỉnh. Vâng, tôi hiểu rằng chúng là ngôn ngữ khai báo, không phải ngôn ngữ bắt buộc. Nhưng tại sao mọi người luôn nằm sấp trên đầu với sự thật phũ phàng (và có thể nói là rõ ràng) này khi họ đặt câu hỏi về các ngôn ngữ này?

160
Robert Harvey

Sự khác biệt là gì, thực sự?

Sự khác biệt thực sự và quan trọng giữa một ngôn ngữ lập trình và các ngôn ngữ khác là:

Trình bày mô tả HTML và CSS , trong khi ngôn ngữ lập trình mô tả chức năng

Tôi dự định sẽ minh họa tại sao sự khác biệt này lại quan trọng, nhưng sự cố vấn đó về vấn đề này đôi khi bị đặt sai chỗ.

Một câu chuyện có thật:

Có lần tôi đã dành vài tháng để phát triển một hệ thống quản lý hiệu suất phức tạp bằng ngôn ngữ lập trình "phù hợp". Nó tự động hóa quá trình thu thập dữ liệu từ nhiều hệ thống khác nhau, thực hiện các thao tác khác nhau trên dữ liệu đó và sau đó trình bày kết quả trong một bảng đơn giản.

Khi nó còn tồn tại, một người quản lý cấp cao đã nhìn thấy một công cụ được viết cho một doanh nghiệp tương tự và hỏi liệu chúng tôi có thể thay thế những gì tôi đã viết bằng cách sử dụng thay thế của họ không. Hơn nữa, anh ấy rất buồn vì tôi đã dành nhiều tuần để phát triển giải pháp của mình, nơi ứng dụng mới này đã được viết trong vài ngày.

Điều tra sâu hơn cho thấy tùy chọn ưa thích của người quản lý là tất cả các bản trình bày không có chất: có rất nhiều màu sắc và biểu tượng và đồ thị, nhưng có hoàn toàn không có logic phía sau họ Tất cả các dữ liệu phải được thu thập và thao tác bằng tay. Mặc dù giao diện đẹp, ứng dụng về cơ bản là vô dụng.

Tôi rất vui khi nói rằng người quản lý trong câu hỏi đã bị thuyết phục rằng cách tiếp cận của tôi là cách đáp ứng nhu cầu kinh doanh thực sự của anh ấy.

Tầm quan trọng của việc trình bày:

Thường có một hàm ý rằng các kỹ năng về HTML, CSS, vv bằng cách nào đó kém hơn các kỹ năng về ngôn ngữ lập trình "thực". Đây là một sai lầm nghiêm trọng.

Trong câu chuyện của tôi, người quản lý cấp cao cảm thấy rằng thiết kế là rất quan trọng đối với anh ta, đến mức ban đầu anh ta đã chuẩn bị bỏ qua chức năng có lợi. Bây giờ, nếu đây là một sự cố cô lập, tôi có thể đề nghị rằng người quản lý chỉ là ngớ ngẩn. Nhưng nó đã không. Hết lần này đến lần khác, tôi đã gặp những người dùng bị ấn tượng bởi đồ họa hào nhoáng và các vật dụng điên cuồng, nhưng không bị ấn tượng bởi chức năng thô và thành tựu kỹ thuật của tôi. Tôi nghĩ rằng có một số bài học để tìm hiểu ở đây:

  • Mọi người đánh giá phần mềm theo tiêu chí mà họ hiểu. Họ thường hiểu sự khác biệt giữa đẹp trai và xấu xí, nhưng hiếm khi đánh giá cao các sắc thái kỹ thuật.
  • Mọi người bị đánh lừa bởi vẻ bề ngoài. Đây có thể không phải là một điều tốt, nhưng đó là một thực tế mà chúng ta phải sống cùng.
  • Xuất hiện ảnh hưởng đến cách mọi người cảm nhận về phần mềm. Cách mọi người cảm nhận về phần mềm rất quan trọng đối với họ. Thật vậy, đôi khi mọi người thích phần mềm làm cho họ cảm thấy tốt hơn phần mềm có chức năng vượt trội. Thật vậy, họ có thể làm việc hiệu quả hơn với các công cụ cảm thấy tốt hơn so với các công cụ kỹ thuật vượt trội. Ở mức độ này, người dùng của chúng tôi không bị lừa. Họ đang thực sự đưa ra một lựa chọn khôn ngoan và chu đáo.
  • Là lập trình viên, chúng ta thường bỏ qua vai trò của việc trình bày khi chúng ta tập trung vào chức năng. Ở một mức độ nào đó, điều này là đúng và đúng. Tuy nhiên, điều quan trọng là phải nhận ra rằng có một khía cạnh khác trong công việc của chúng tôi là quan trọng đối với khách hàng của chúng tôi.

Vì vậy, các ngôn ngữ hướng trình bày (HTML, CSS) rất quan trọng. Không nên đánh giá thấp giá trị gia tăng của những người có thể sử dụng các công cụ này một cách hiệu quả.

Tầm quan trọng của ngôn ngữ lập trình thực

Như OP đã chỉ ra, các ngôn ngữ lập trình "thực" là Turing Complete. Là một người đam mê buồn thích hợp, tôi thấy điều này rất hấp dẫn. Điều đó có nghĩa là, đối với bất kỳ chương trình nào được viết bằng ngôn ngữ TC, một chương trình tương đương về chức năng có thể được viết bằng bất kỳ chương trình nào khác Ngôn ngữ TC. Tất nhiên, điều này không có nghĩa là tất cả các ngôn ngữ đều giống nhau. Họ đều có điểm mạnh và điểm yếu khiến họ ít nhiều phù hợp với một số nhiệm vụ nhất định. Tuy nhiên, I/O sang một bên, điều này có nghĩa là tất cả các chương trình có thể được viết bằng tất cả các ngôn ngữ lập trình thực sự.

(Ngẫu nhiên, điều quan trọng là T-C. Khai báo so với mệnh lệnh là một cá trích đỏ ở đây. Ví dụ, SQL là khai báo nhưng cũng là ngôn ngữ lập trình phù hợp vì nó là T-C.)

Tất nhiên, điều tương tự không đúng với ngôn ngữ đánh dấu như HTML hoặc CSS. Trên thực tế, có toàn bộ các loại vấn đề mà các ngôn ngữ này không thể giải quyết được. Nơi tôi có thể lập trình bất cứ điều gì tôi muốn bằng ngôn ngữ lập trình thực sự - bao gồm các công cụ bố cục - không thể đạt được những điều tương tự với các ngôn ngữ phát sinh 't TC.

Như được nhấn mạnh trong câu chuyện của tôi, HTML và ilk của nó được sử dụng để tạo bài thuyết trình. Ngôn ngữ lập trình thực được sử dụng để sản xuất chức năng.

Tại sao các lập trình viên mô phạm về tất cả?

  1. Các lập trình viên dành rất nhiều thời gian, công sức và tiền bạc để phát triển các kỹ năng của họ. Mọi người tự nhiên coi trọng những thứ mà họ đầu tư ("trái tim của bạn là nơi tiền của bạn").
  2. Các lập trình viên thường cảm thấy cần phải chứng minh lượng thời gian cần thiết để tạo ra kết quả so với kết quả nhanh chóng đạt được của các nhà thiết kế UI. Để làm điều này, họ cần phải phân biệt giữa những gì hai nhóm thực sự làm .
  3. Bởi vì nhà tuyển dụng cần áp dụng đúng người vào đúng việc. Trừ khi chúng tôi làm rõ sự khác biệt (thường là kỹ thuật), các nhà quản lý dễ dàng thực hiện các cuộc gọi sai.
  4. Bởi vì có một sự khác biệt thực cơ bản , như đã nêu ở trên.

Có phải lúc nào cũng thích hợp để trở thành người phạm tội không?

Chúng ta hãy đối mặt với nó, với tư cách là lập trình viên chúng ta là một người rất tự nhiên. Nó đi với lãnh thổ. Nó không giúp ích gì cho nhiều người trong chúng ta đã bị đốt cháy khi những người không phải là lập trình viên không hiểu những gì chúng ta làm.

Tuy nhiên (và thành thật mà nói, điều này đi ngược lại với bản năng tự nhiên của tôi), Tôi không nghĩ chúng ta cần phải gọi mọi người ra ngoài bất cứ khi nào họ lướt qua mọi khác biệt nhỏ.

Điều quan trọng ở đây là bối cảnh phối cảnh .

Tôi đã nói rằng, từ quan điểm của một nhà sinh học, cà chua là một loại trái cây. Nhưng khi tôi mua chúng trong siêu thị, tôi tìm chúng trong số các loại rau. Tại sao? Bởi vì phân biệt kỹ thuật không thành vấn đề trong bối cảnh cụ thể đó. Hơn nữa, sự khác biệt sẽ thực sự cản trở về tính hữu dụng của chúng: ví dụ, nếu tôi đủ để đưa cà chua vào món salad trái cây.

Nó giống với ngôn ngữ máy tính. Đôi khi sự khác biệt giữa ngôn ngữ lập trình và ngôn ngữ khác thực sự có vấn đề . Tuy nhiên, khá thường xuyên, tất cả chúng ta có thể giao tiếp hoàn hảo một cách hiệu quả khi chỉ cần gộp tất cả chúng lại với nhau. Trong trường hợp câu hỏi được liên kết bởi OP, nó thực sự không quan trọng ngôn ngữ nào là ngôn ngữ lập trình thực sự và ngôn ngữ nào không. Chỉ ra sự khác biệt đã không thúc đẩy cuộc thảo luận dưới bất kỳ hình thức nào. Rất may, ngoài việc thêm một chút tiếng ồn (và trở thành tác nhân kích thích cho một cuộc thảo luận thú vị!), Công việc giáo dục được liên kết bởi OP không có kết quả. Tuy nhiên, điều tồi tệ nhất là nghề giáo có thể khuấy động những cảm xúc tiêu cực và làm hỏng các mối quan hệ ... ít nhất là theo vợ tôi.
[.__.] :-)

Cách đối phó với nghề giáo trong số các lập trình viên

Một người bạn thuyết giáo của tôi đã từng giảng một bài giảng có tên:

đây có phải là một ngọn đồi đáng chết?

Ông ta đang đề cập đến những vị tướng đưa ra đánh giá chiến lược về những trận chiến nào đáng để chiến đấu: những lợi ích có đáng phải trả không?

  • Có thực sự đáng làm gián đoạn dòng chảy của cuộc thảo luận để làm cho sự khác biệt này?
  • Có phải nghề giáo của tôi bắt nguồn từ cảm giác kiêu ngạo hoặc từ quá khứ bị tổn thương?
  • Nhận xét của tôi có coi trọng kỹ năng của người khác cũng như của chính tôi không?

Tất nhiên, có những lúc cần phải phân biệt. Mục tiêu của tôi là, khi tôi đóng góp, nó sẽ tăng thêm giá trị cho những nỗ lực tập thể của chúng tôi.

Rốt cuộc, đó là công việc của mọi lập trình viên thực .

300
Kramii

Nói với một Kỹ sư Cơ khí hoặc Dân dụng rằng bạn đã học "Kỹ thuật phần mềm" và họ sẽ nói với bạn rằng "Kỹ thuật phần mềm" không phải là thực tế kỹ thuật.

Nói với một phi công F-16 rằng bạn bay Cessnas cho vui và anh ta sẽ nói với bạn rằng bạn không phải là phi công thật.

Nói với bác sĩ rằng bạn là một bác sĩ chỉnh xương và anh ấy sẽ nói với bạn ... tốt, chúng ta đừng đến đó :-)

Tôi nghĩ rằng hầu hết mọi người không thích ý tưởng về nghề nghiệp của họ bị xâm nhập bởi những kẻ giả vờ hoặc những người không thực sự "xứng đáng".

Bây giờ, công bằng mà nói, khá rõ ràng rằng HTML và CSS không phải là lập trình ngôn ngữ. Chúng không còn là ngôn ngữ lập trình mà định dạng .docx là ngôn ngữ lập trình và để khẳng định rằng bạn là lập trình viên nếu tất cả những gì bạn biết là HTML và CSS chắc chắn là không chính xác. Nhưng tôi nghĩ rằng một số sự kịch liệt trong câu trả lời có thể được quy cho những gì tôi đã nói ở trên.

Ngoài ra, trong câu hỏi bạn đã liên kết, người hỏi đã gọi HTML và CSS là "ngôn ngữ", không phải là "ngôn ngữ lập trình". HTML là một ngôn ngữ đánh dấu và CSS cũng là một ngôn ngữ (tuy nhiên tôi không biết "loại" ngôn ngữ nào bạn gọi là CSS?), Vì vậy tôi nghĩ rằng thật không công bằng khi gọi anh ấy ra để gọi chúng là "ngôn ngữ "...

117
Dean Harding

Nó không thực sự quan trọng với tôi rất nhiều.

Nhưng tôi cho rằng với những người làm điều đó, sự khác biệt giữa HTML, CSS, XML, v.v. và Ngôn ngữ lập trình thực ™ giống như sự phân biệt giữa gỗ và Sơn làm vật liệu xây dựng. Bạn không thể xây dựng mọi thứ với Paint như bạn có thể với gỗ và tương tự như vậy, bạn không thể chương trình với HTML như bạn có thể với RPL.

Mặc dù vậy, tôi cấp cho bạn một số cuộc hội thoại, việc tạo ra sự khác biệt như vậy có thể không liên quan, và do đó mang tính mô phạm và gây phiền nhiễu.

9
Eric King

Nó có thể không phải là một sự khác biệt "quan trọng", vì có thể cho rằng nhiều công việc diễn ra trong phần html/css của một số trang web như trong phần lập trình.

Nhưng nó một sự khác biệt đáng kể, vì bất kỳ ai không biết điều đó có nghĩa là gì không có chỗ trong một nhóm phát triển web.

Nếu một nhà thiết kế tin rằng HTML là lập trình, hãy để anh ta thiết kế với các công cụ Adobe và thực hiện các thiết kế liên quan đến in; nhưng đừng tin một điều anh ta có thể nói về các ứng dụng web.

Nếu một nhà phát triển nghĩ rằng anh ta ở trên các nhà thiết kế vì 'ngôn ngữ của anh ta đã hoàn thiện, thì đừng hy vọng anh ta sẽ làm việc tốt với nhà thiết kế, hoặc mã của anh ta có thể được' hoàn thiện 'sau khi hoàn thành.

6
Javier

Nó quan trọng đối với một số người vì không phải là khoa học tên lửa trên bề mặt nhưng có rất nhiều arcana xung quanh họ do thực tế là họ thực hiện khác nhau trong 5 đến hàng chục môi trường khác nhau mà bạn thực sự quan tâm. Sự khó đoán và sự chú ý đối với nghề thủ công khiến một số chuyên gia công nghệ sợ hãi trước những rủi ro không thể chấp nhận được và thậm chí còn kinh hoàng hơn khi học thêm bất cứ điều gì sau đó họ hoàn toàn phải có bằng cấp.

Nếu ai đó hỏi tôi những ngôn ngữ nào tôi biết và tôi đã ném CSS ra khỏi đó và họ nói "nhưng đó không phải là ngôn ngữ THỰC SỰ", tôi sẽ hỏi họ làm thế nào để họ xử lý trung tâm theo chiều dọc của một div trong IE 5, IE 6-8 và IE9 +. Sau đó, chúng ta có thể chuyển sang các góc tròn, các vấn đề về độ trong suốt alpha, thủ phạm THỰC SỰ đằng sau tất cả các đối số bố cục bảng vô lý này chỉ mới bắt đầu trở nên thực sự không liên quan và hàng tá chủ đề khác được nói uber-coder, người có thể biết một ngôn ngữ và tuyên bố một hoặc hai ngôn ngữ mà anh ta hầu như không biết chữ do các lớp học mà anh ta đã buộc phải học đại học 10 năm trước.

Chúng chắc chắn là 'ngôn ngữ'. Tôi sẽ không gọi chúng là 'ngôn ngữ lập trình.' Tôi sẽ cảm thấy thoải mái khi mô tả quá trình viết bằng các ngôn ngữ này 'mã hóa'.

Tuy nhiên, theo như tôi quan tâm, bất kỳ ai từng quản lý CSS đều có chutzpa và đạo đức làm việc để trở thành một lập trình viên xuất sắc, đã có một số nền tảng về tư duy hướng đối tượng và không nghi ngờ gì đã học cách nghĩ về những gì anh ta viết bây giờ có thể tác động đến 25 dự án công việc của mình trong tương lai.

5
Erik Reppen

Bạn đánh nó vào đầu khi bạn nói "khai báo, không bắt buộc". Đánh dấu (có thể là HTML, CSS hoặc bất cứ điều gì) mô tả mọi thứ. Toàn bộ quan điểm của lập trình là do điều.

Bộ kỹ năng cần thiết để sử dụng đánh dấu là hoàn toàn khác với bộ kỹ năng cần thiết để lập trình.

Các loại vấn đề được giải quyết bằng cách viết đánh dấu là hoàn toàn khác với các loại vấn đề được giải quyết bằng lập trình.

5
HedgeMage

Ngôn ngữ lập trình là một chút của một thuật ngữ không chính xác bởi vì đó là một thuật ngữ phổ biến được sử dụng bởi các học viên và giáo dân. Các học viên có một ý nghĩa sắc thái của thuật ngữ đó, nơi giáo dân thường không. Thông thường định nghĩa của chúng là nếu nó có các từ/cú pháp vui mà tôi không hiểu ngay lập tức và các lập trình viên sử dụng nó thì đó phải là ngôn ngữ lập trình. Không hoàn toàn sai lệch, nhưng chúng ta có thể đồng ý rằng nó không chính xác.

Những từ như khai báo, bắt buộc và hoàn thành là những thuật ngữ chính xác hơn với ý nghĩa rất cụ thể. Khi bạn hỏi một câu hỏi như tại sao HTML/CSS không phải là ngôn ngữ lập trình, bạn sẽ yêu cầu một định nghĩa chính xác hơn về ngôn ngữ lập trình thực sự là gì. Chúng tôi không phải là người phạm tội, nhưng cố gắng trả lời câu hỏi của bạn. Chúng có phải là thuật ngữ tốt nhất để sử dụng ngay cả khi bạn google chúng không khó hiểu ý nghĩa của chúng? Phụ thuộc. Bạn muốn câu trả lời ngắn hay dài. :-)

Các ngôn ngữ lập trình thường được cho là hoàn thành bởi các lập trình viên, nhưng điều đó có nghĩa là gì? Nó có nghĩa là ngôn ngữ có thể mô tả hành vi hoặc cách làm việc. Chúng tôi chính thức gọi nó là logic. HTML/CSS có thể mô tả có một nút nằm ở góc trên cùng bên phải hoặc có một bảng có 4 cột 5 hàng, hai hàng đầu tiên có màu vàng và hàng dưới cùng có văn bản màu xanh lá cây và mỗi ô trong bảng có 5 pixel không gian trống xung quanh nội dung.

Những gì HTML/CSS không thể làm là thể hiện hành vi hoặc logic của những gì xảy ra khi bạn nhấp vào nút. Không thể nói khi tôi nhấp vào nút đó, lấy các giá trị ra khỏi bảng đó và thêm chúng lên, và viết giá trị đó vào một hàng mới ở cuối bảng. Mô tả hành vi gần tương đương với Biến hoàn thành mà không bị quá phạm vi.

Chính xác hơn là Turing-perfect có nghĩa là bạn có thể tự thực hiện ngôn ngữ. Điều đó có nghĩa là tôi có thể viết một chương trình javascript có một chuỗi javascript và nó có thể thực thi nó (và không sử dụng hàm eval ()). Trên thực tế, tôi có thể viết một chương trình javascript có thể lấy một chương trình được viết bằng bất kỳ ngôn ngữ hoàn chỉnh Turing nào và đánh giá nó. Đó là ý nghĩa của việc Turing hoàn thành. Tất cả các ngôn ngữ đang hoàn thành tương đương trong những chương trình có thể được thể hiện. Tiết lộ khá tuyệt vời nếu bạn nghĩ về nó.

3
chubbsondubs

HTML và CSS không phải là ngôn ngữ lập trình. Hãy vượt qua nó.

Tuy nhiên: JavaScript là ngôn ngữ lập trình. Máy là trình duyệt. PHP là ngôn ngữ lập trình. Máy là máy ảo trong máy chủ.

Vì vậy, nếu bạn chỉ làm bằng HTML và CSS, bạn sẽ không thực hiện bất kỳ chương trình nào (mặc dù bạn có thể đang thực hiện một số kỹ thuật).

Nhưng nếu bạn đang sử dụng JavaScript, PHP hoặc ngôn ngữ kịch bản lệnh khác. Bạn đang làm lập trình.

Đối với ngôn ngữ lập trình THỰC SỰ. Nếu bạn đang hoạt động trên máy (máy thật hoặc ảo). Và đang sử dụng thuật toán RIÊNG CỦA BẠN để bảo máy làm việc. Sau đó, bạn đang sử dụng một ngôn ngữ lập trình THỰC SỰ.

3
Ricardo Santos

Đây là hai xu của tôi. HTML và CSS rõ ràng không phải là ngôn ngữ lập trình. Vì lý do đó, khi tôi thấy HTML hoặc CSS trên sơ yếu lý lịch của ai đó trong "Ngôn ngữ lập trình", điều đó chỉ đơn giản cho tôi biết rằng người này không biết anh ta đang nói về cái gì.

Ngoài ra, không, nó không thực sự quan trọng.

Nhân tiện, các lập trình viên thường có xu hướng phạm nhân. Điều đó chỉ đơn giản đi kèm với công việc.

1
Dima

Tôi nghĩ rằng nó thuộc về điều này - HTML & CSS, trong khi đủ phức tạp để yêu cầu một số hiểu biết, là ngôn ngữ trình bày, phù hợp nhất là định dạng cho các báo cáo được tạo. Do đó, những người chỉ có thể làm những điều này không được coi là lập trình viên. Hãy nhớ rằng một số lập trình viên đã tính toán đủ lâu để ghi nhớ khi trình xử lý Word trung bình sử dụng nhiều cú pháp lệnh để định kiểu văn bản hơn HTML.

Điều mà một số người sẽ gọi là ngôn ngữ 'thực' là ngôn ngữ sẽ xử lý dữ liệu theo một cách nào đó để tạo báo cáo. Hoặc một cái gì đó có thể được sử dụng để viết một trò chơi. Biết HTML & CSS từ trong ra ngoài là một kỹ năng có giá trị, nhưng nó kết hợp nhiều hơn với kiến ​​thức về JS cho giao diện người dùng và Java, PHP, Perl, Ruby, Python, C/C++ hoặc C # ở phía sau.

Ngược lại, một người chỉ biết một trong những ngôn ngữ 'thực' đó mà không có bất kỳ công nghệ giao diện web nào, sẽ hạn chế rất nhiều tính linh hoạt của chính họ với tư cách là một lập trình viên.

0
Danny Staple

Không thành vấn đề. Và đó cũng là vấn đề định nghĩa. Ngôn ngữ lập trình là gì? Một số có nghĩa là nó phải được hoàn thành. Những người khác có định nghĩa khác, làm cho HTML trở thành một ngôn ngữ lập trình. (Và trong ví dụ của bạn, chúng thậm chí không được gọi là ngôn ngữ lập trình, chỉ là ngôn ngữ mà chúng rõ ràng là).

Lời khuyên của tôi: Cố gắng phớt lờ những người chỉ ra những loại vô nghĩa này và theo nhiều nghĩa thậm chí là tuyên bố không chính xác. Nó chỉ là một biến thể của ngữ pháp nazi-ism. Gọi HTML là ngôn ngữ lập trình không chính xác theo bất kỳ ý nghĩa nào.

0
Lennart Regebro

Kiểu hình con lợn/khuôn mẫu "não trái" hoặc "não phải" sáng tạo mô tả chính xác bộ kỹ năng của nhiều người. Theo kinh nghiệm của tôi, "HTML/CSS là ngôn ngữ lập trình" nói nhiều hơn về việc những người giỏi HTML/CSS cũng có thể giỏi các nhiệm vụ lập trình khác.

Hầu hết các nhà thiết kế web mà tôi đã làm việc trong 13 năm qua tôi đã làm phát triển web đã có thể tạo HTML và CSS hoạt động, nhưng không thể xử lý các thách thức lập trình đòi hỏi khắt khe hơn (bất cứ điều gì khác hơn là cắt và đơn giản nhất dán JavaScript). Hầu hết các lập trình viên và nhà thiết kế cơ sở dữ liệu nóng bỏng không quan tâm đủ đến việc trình bày trực quan để thực hiện tốt công việc với HTML/CSS hoặc trình bày nói chung. Hầu hết thực sự từ chối để thử.

HTML và CSS yêu cầu một số kỹ năng lập trình : thử nghiệm, giải quyết vấn đề, kiểm tra cẩn thận, hiểu về thừa kế ... Nhưng chúng yêu cầu ít nhất một số lượng bằng nhau về kỹ năng thiết kế: độ nhạy với màu sắc, đường nét, khoảng cách, cân bằng - hầu hết các loại kỹ năng bố cục hình ảnh tương tự tạo nên một bức ảnh đẹp.

Vì HTML/CSS là ngôn ngữ bố cục hoặc ngôn ngữ trình bày, nên nó nằm ở cuối sơ đồ luồng dữ liệu. Không có mã nào khác nằm ở hạ lưu của nó. Các kỹ năng thiết kế cấp lớn hơn mà ai đó cần để thiết kế API, dịch vụ hoặc lược đồ cơ sở dữ liệu tốt không được sử dụng trong HTML và CSS. Nhìn chung, không cần phải mô đun hóa bất cứ điều gì liên quan đến HTML hoặc CSS, hoặc nếu có, thì không phải là người thiết kế đồ họa để làm điều đó. Rất hiếm khi chức năng được tạo bằng HTML/CSS . Menu thả xuống có lẽ là ngoại lệ phổ biến nhất, nhưng chúng có thể được thực hiện bằng cách cắt và dán một công thức ra khỏi web thay vì thiết kế mã.

Điều đó là bất thường, nhưng không phải là không thể đối với một lập trình viên có một số kỹ năng thiết kế trực quan hoặc bố trí hoặc cho một nhà thiết kế có một số kỹ năng lập trình. Những người này đặc biệt có giá trị trên một nhóm web vì họ giúp thu hẹp khoảng cách mà hầu hết chúng ta có. Nhưng chúng thường tuân theo các khuôn mẫu, rằng việc có thể làm HTML/CSS là không thể đối với một "lập trình viên thực sự" hoặc ngược lại. Nhưng sự kết hợp kỹ năng này là không thể hơn là cùng một lập trình viên trở thành một thủy thủ, Họa sĩ, đầu bếp giỏi hoặc có một số kỹ năng khác mà họ thực hành trong thời gian rảnh rỗi.

Như những người khác đã nói, sự khác biệt này tập trung nhiều nhất khi tuyển dụng. Vì những người có tài năng chéo là rất hiếm, hầu hết các bài đăng công việc phải nhắm mục tiêu một bộ kỹ năng này hoặc kỹ năng khác. Nếu một lập trình viên liệt kê HTML/CSS trong "Ngôn ngữ lập trình", nó sẽ giương cờ đỏ rằng họ không thể hoàn thành các nhiệm vụ lập trình chung hoặc có thể định nghĩa lập trình của họ rất hẹp. Có lẽ họ có thể, nó chỉ đặt ra một câu hỏi. Nếu một nhà thiết kế liệt kê HTML/CSS, bạn chắc chắn muốn xem danh mục đầu tư của họ để thấy rằng họ có khả năng nghệ thuật để tạo hiệu ứng hình ảnh mong muốn.

HTML/CSS có thể bị vứt bỏ nhiều lần vì không phải là ngôn ngữ lập trình thực sự vì nó an toàn và dễ chấp nhận hơn về mặt xã hội so với những người không thể vượt qua sự phân chia bán cầu mà họ đại diện. Tất nhiên, một số người có thể không có sự ức chế đó. Tôi thực sự đã làm việc với một người quản lý thường nói: "Anh ấy đã viết [chèn chức năng xương sống của bộ phận ở đây]? Tôi nghĩ rằng anh ấy chỉ làm HTML?"

Câu hỏi tuyệt vời!

0
GlenPeterson