Kabuk yazısının hangi özellikleri PHP / Python gelişimi için geçerlidir? [kapalı]


28

Java ve C # (. NET) öğrenen bir PHP / Python programcısıyım.
Ana geliştirme işletim sistemim Windows 7'dir ancak Linux kullandım ve şu anda Ubuntu ile çift önyükleme yapıyorum. Benim Linux bilgim, ancak oldukça sınırlıdır. Basit görevlerde komut satırı ile çalışabilirim ama bu kadar. Herhangi bir kabuk komut dosyası yapmıyorum ve çok önemli komutları bilmiyorum.

İlgi alanlarım web geliştirme, mobil uygulamalar ve belki gelecekte bazı gömülü şeyler. Shell komut dosyası yazma becerileri bu ilgi alanları için yararlı olacak mı, öyleyse nasıl?


9
Bana 5 yıl önce kim söyledi "Gerçek erkekler C ++ 'da akıcıdır, gerçek erkekler komut satırını kullanır ve Linux'larını disket görüntüden başlatır" - fvck you! Onlara "gerçek adamlara" başlarını kullanmalarını ve iş için bulabilecekleri en iyi aracı seçmelerini istiyorum. Ayrıca iş dışında yaşamda nasıl eğlenileceğini de biliyorlar. Hanımlar, erkek merkezli cevap için üzgünüm. "Erkekler" derken programcıları kastediyorum, fakat o zamanlar böyle ifade edilmedi.
İş

3
Her kim “Gerçek Erkekler” ile tartışmaya başlarsa şaka yapar ya da sh * t ile doludur. Bununla birlikte, bunun gibi salaklar, başlangıçta zor gibi görünen şeylerin anlaşılmasıyla ilgili bir şey ifade etmemelidir. Kabuk programlama ve GUI olaylarını sürüklemek genellikle çok daha etkilidir. Ve eğer bazı C ++ merkezli faktörler kesinlikle gerekliyse, C ++ devam etmenin yoludur. (yani, yüksek performans veya daha önemlisi, bir C veya C ++ kütüphanesinin / mevcut kod tabanının kullanılması vb.) - temel olarak pragmatik değilseniz, bu iş sırasını unutun.
ocodo

6
@Slomojo: Gerçek erkekler eşlerini ve çocuklarını sever ve onlara iyi davranır. ;)
Mason Wheeler

@Mason, siz bir prenssiniz efendim.
ocodo

1
PHP / Python, Windows kutularından daha ucuz olduklarından Linux kutularında sıkça kullanılmaktadır. Bu nedenle, onları hemşireye ihtiyacınız varsa, işlerin nasıl yürüdüğünü ve ne yaptığınızı bilerek daha iyi olursunuz.

Yanıtlar:


35

Eğer bir windows uygulamasını (veya bir mac uygulamasını) kodluyorsam neden Linux'u bilmem gerekiyor? Bir Ford tamircisi John Deer traktörlerini tanıyor mu? Her şey profesyonelce veya kendi "hobi" zamanınıza göre ne yaptığınıza bağlıdır.

Şimdi, bunu bilmek incitmiyor. Aslında, "ne kadar çok bilirsin, o kadar iyi olursun" diye inanıyorum.


Sormamın nedeni, Linux'un bugünlerde her tür programcı için 'öğrenmesi gereken' sayılmasıydı. Ancak yanılıyor olabilirim.
Maxtor

@Max: Yalnızca onu nasıl kullanacağınızı ve Linux'un neden ve nasıl yaptığını biliyorsanız, akıllı olmanızı sağlar. Linux kaynak kodunun içine gömülü engin bir bilgi var ama Muad'ın dediği gibi bir zorunluluk değil.
Geek

1
Programlarını kendi başına dağıtmayı beklerse, çoğu zaman linux olabilecek bir üretim ortamında konuşmasını bekler.
dukeofgaming

@dukeofgaming, IIS ve PHP'yi sorunsuz çalıştırabilirsiniz. linux öğrenmek iyi olurdu, ama gerekli? pek sayılmaz.
Muad'Dib

@dukeofgaming ASP.NET uygulamalarımı bir linux sunucuya dağıtmak zorunda kalmamıştım ve şimdiye kadar yapacağımdan şüpheliyim!
Kirk Broadhurst

29

Bir PHP programcısıysanız, kesinlikle Linux bilmelisiniz. PHP Linux'ta oluşturuldu ve PHP LAMP yığınının önemli bir parçası: Linux + Apache + MySQL + PHP. Şimdi Windows sunucuları için geliştirme şansınız olsa bile, bir sonraki işiniz muhtemelen Linux sunucuları için gelişmenize neden olacak ve Linux ortamına aşina olmanız gerekir; PHP

Mobil uygulama alanında, Linux'un (ne yazık ki) gelişmekte olduğunuz ortamlarla çok az ilgisi olacağını bilmek. iPhone OS'nin Linux ile hiçbir ilgisi yok ve Android sizi sanal bir makineye o kadar sıkıca sarstı ki, altında Linux olduğunu asla bilemezsiniz. Linux için Meego ya da Maemo'da programlayabilirsiniz, ancak bunlar iPhone ve Android'in popülaritesine yakın değildi.

Gömülü alanda, sen sahip Linux bilmek. Gömülü Windows nadirdir, ancak gömülü Linux oldukça yaygındır. (Tabii ki, çıplak metal gömülü programlama da oldukça yaygındır, bu nedenle nereye gitmek istediğinize bağlıdır.)

Linux'u yıllarca derinlemesine öğrenirseniz, sistemin çekirdeğinden, önyükleme işleminden, komut satırına ve GUI'ye kadar her bölümünü anlama düzeyiniz olur.


3
Katıştırılmış Linux'un 32 bit cihazlar için oldukça yaygın olduğu konusunda hemfikirim. Bununla birlikte, gömülü mikropların çoğu hala Linux çalıştıramayan 8 ve 16-bit'tir. ("Çıplak metal" yorumunuzda buna değindiniz, sadece biraz açıklığa kavuşturuyorum.) 32-bit cihazlar yine de en hızlı büyüyen segmenttir.
tcrosley

LAMP yığını ve gömülü alan için +1. Acemi Unix / Linux programcıları için bu konudaki kitap önerilerinizi çok isterim.
Anthony,

17

Burada uygulayabileceğinizi düşündüğünüz belli bir 80/20 derece derecesi var. Linux'un nasıl çalıştığının temellerini ve Shell'den bilmeniz gereken temel komutları öğrenmek çok uzun sürmez. Aynı şekilde, temel Apache yapılandırması, ihtiyacınız olursa olması çok uygundur. Hayatınızın yıllarını buna adamak zorunda değilsiniz, ancak zorunlu olsaydı, kendi sunucunuzu çalıştırarak elde edebileceğiniz temelleri öğrenmeye kesinlikle değer.

Yine de iyi bir çizgi. Dikkatli olmazsanız, Windows'un Linux'un sunduğu şeylere alışırken sizi gerçekten gıdıklamaya başladığını hemen bulabilirsiniz.


12
+1 - Windows'u kullanmanın tadını çıkarmaya devam etmek istiyorsanız Linux öğrenmeyin.
Mongus Pong

6
+1 - [elini acıkça yükseltir] Um. Benim adım Inaimathi ... ve ben eski bir Windows kullanıcısıyım.
Inaimathi

6

Bunu öğrenmek zorunda değilsin ama seni daha iyi bir programcı yapacak. Nasıl yapılacağını Windows yönteminden farklı bir şekilde öğreneceksiniz. * Mermilerden herhangi birinin kullanılması nihayetinde komut dosyası yazmaya ve normal ifadeleri kullanmaya, kurulumları otomatikleştirmeye, büyük dosyaları ayrıştırmaya vb. Yol açar.

Linux'ta başka bir şey yapmayı her öğrendiğimde ne kadar havalı olduğunu umduğum kadar, bilmediğim için alay edilmeyi umursamıyorum. Her yeni bit için daha da iyi olmaya devam ediyor.

Powershell, nix dünyasından gelen çok şey var, nihayetinde otomasyona sahip olmak için iyi bir konsola ihtiyacınız olduğunu anladılar. Hem Perl hem de Python, C, bash, sed, awk karışımı gibi görünmekle birlikte, hepsi kendi biçimlerinde iyi bir şey haline geldi.

En azından özgeçmişinize koyacak başka bir şeye sahip olacaksınız ancak bu gerçekten ondan çıkaracağınız en iyi şey değil.

Eminim seni başaracak şeyleri bulacaksın: "Vay, bu çok havalı!" Birincisi, hizmeti durdurmadan ve bağlantıları almaya devam etmeden, yeni bir yapılandırma dosyasını yeniden yüklemek ve günlükleri yeniden başlatmak için USR1 sinyalini kullanarak Apache'yi "öldürmek" oldu. Ayrıca ssh ve rsync, iyi bir kedinin neden MS portlarını alamayacağıma da değiniyorum.


+1 MS'in kabuklu yöne doğru hareket ettiğini ve tam olarak yapamadığının gösterilmesi için!
Orbling

4

Sana zarar vermez. Tüm Microsoft şirketlerinde bile, en az birkaç Linux sunucusuna girme ihtimaliniz giderek artmaktadır. Örneğin Yığın Taşması yük dengeleyicileri için Linux kullanıyor. Bu özellikle sanallaştırma devreye girdiğinde geçerlidir.

Bir programcı olarak, yalnızca UNIX benzeri tek bir değişken değil, POSIX ile tanışmayı düşünerek daha iyisini yapabilirsiniz. Bazı tuhaflıkları olmasına rağmen, UNIX benzeri tüm ortamlarda (çoğunlukla) taşınabilir olan standart bir arabirim oluşturma konusunda inanılmaz bir çabayı sarf eden çabayı gösterir. Unutmayın, UNIX benzeri pek çok sistem% 100 "kusursuz" değil, ancak iyi bir başlangıç ​​noktasıdır.

Sadece sıradan bir kullanıcı olarak, yeni bir şeyle uğraşmanın ve yeni şeyler öğrenmenin eğlenceli olduğunu söyleyebilirim. Sanırım, düşünebilecek her işletim sisteminde 'gurusu' olmak mümkün, ama bunun bir programcı için en faydalı yol olduğunu sanmıyorum. Yine de, karşılaşabileceğiniz şeylerin çalışma bilgisi iyidir .. ve sorunuzdan sonra gelecekte Linux ile karşılaşmanız muhtemel görünmektedir.


+1 linux hakkındaki bilgilerimi (yıllardır linux web sunucusunu yönettim) "Microsoft" gelişmelerimde bana çok yardımcı oldu. Aslında, her çözüm bu sorun.

Bir Linux dağıtımını (oynayabileceğiniz gerçek bir yazılım sistemidir) ve POSIX'i (soyut bir özelliktir) tanımak, birbirinden çok farklı iki şeydir. Bir Unix veya Unix benzeri işletim sistemi (Mac OSX büyük ölçüde hariç) ile tanınırsanız, bilgilerinizi bir başkasına aktarmakta zorluk çekmezsiniz.
David Thornley

3

Evet, ama aktif olarak incelemeniz gerekmiyor gibi gözükmüyor.

Benim için linux ile olan yakınlığım, onu iş işletim sistemim olarak kullanmamla geliştirildi. Teker teker ortaya çıktıklarında bilmem gerekenleri öğrendim ve yapmaya devam ettim. İnternet, Linux ile ilgili ihtiyaç duyacağınız her şeyi nasıl yapacağınızla ilgili kaynaklarla doludur, bunun yerine, man sayfalarını ve belgeleri okumakta iyi olmanızı ve beyninizin nasıl başarılacağının ayrıntılarını özümsemesini (ve unutmasını) öneririm. ilerledikçe belirli görevler .

Bu söylendiği gibi, linux dünyasından temel bir kavrayışa sahip olmadığınız için reddedileceğiniz birkaç emir vardır.


3

İçinde bulunduğum beş işten dördünde, geliştiriciler ve KG (en azından başladığı) Windows üzerinde çalıştı, ancak test ve üretim sunucuları Linux / UNIX idi. Hepsinin, en azından test sunucularına girebilmek ve günlüklere bakmaları veya 'gerçek' ortamda çalışan bir programın hatalarını ayıklayabilmeleri için en az miktarda UNIX bilmeleri gerekiyordu. Aslında Windows için son 20 yılda olan firmalarda çok az gelişme var.

Burada başkalarını yankılanmak, işiniz veya kariyeriniz için çok az gerekli olabilir, ancak kendi işinizi, kullandığınız dilin veya sistemin yararlarını ve sınırlamalarını anlamanıza yardımcı olacaktır.


2

IMHO, Linux / Unix'i tanıyan yetkin bir programcı için daha önemli bir Unix felsefesi için harika bir adım olabilir.


2

İşletim Sistemleri Bilgisayar Bilimi dersine girdiğimde, UNIX tabanlı işletim sistemlerini çalıştık ve RedHat üzerinde çalıştık, çünkü açık kaynak kodluydu ve kodu görebildik ve bununla yapamadığımız şeyleri yapabildik. pencereler.

İşletim sistemlerinin kaput altında nasıl çalıştığının temellerini öğrenecekseniz, sadece akademik bir ortamda olsa bile, muhtemelen Linux'ta biraz deneyime sahip olmalısınız.

Sadece Ubuntu 10.04'ten Windows 7'ye döndüm. Grep ve diğer komut satırı araçlarının bir kısmı olmadan kendimi kaybolmuş hissediyorum. Bir Linux ortamında geliştirmeyi tercih ediyorum çünkü sistemin kullanıcıları ve geliştiricileri güçlendirmek için daha elverişli olduğunu hissediyorum.

Üniversiteden çıkan ve Linux hakkında hiçbir şey bilmeyen .NET programcılarının gerçekten iyi olduğunu biliyorum, bu yüzden bu bir zorunluluk değil, ancak 5 yıldan fazla programlama tecrübesi olan birinin Linux'a bir biçimde veya başka bir şekilde maruz kalmasını beklerdim. kariyerlerinde zaman.

Odaklandığınız şeyin yargıcı olmak zorundasınız; ancak. Şu anda mobil uygulamalar geliştirmek için bir yol varsa ve Linux'u bilmek gerçekten bir gereklilik değilse, belki de Linux yerine mobil SDK'lar hakkında daha fazla şey öğrenmeye odaklanabilirsiniz. Her şey için bir tradeoff var ve sanki gerekirse Linux hakkında temel olarak daha fazla bilgi edinebileceğiniz temel bir riskiniz var gibi görünüyor.


2
Windows kutularımda her zaman grep ve diğerleri oldu, onlar bir zorunluluktur.
Orbling

1

Aşağıdakilerden herhangi biri sizi rahatsız ediyor mu?

  1. Linux'u özgeçmişinize ekleyemezsiniz / edemezsiniz.
  2. Tamamen Linux mağazasında çalışmaya hak kazanmıyorsunuz.
  3. Mevcut iş talepleriniz ve Linux'u kendi kendine çalışma yoluyla takip etme konusundaki ilgi seviyeniz mevcut değildir, bu nedenle Linux ile ilgili durumunuz değişmez.
  4. Windows olmayan geliştiriciler sizi alay edecek (Belki de yüzünüze değil.).

Hala devam edebileceğiniz tonlarca iş fırsatı ve kariyer yolu var. Bunlardan hiçbirinin sizi rahatsız etmesi gerektiğini söylemiyorum. Sadece kendinize karşı dürüst olun ve genel olarak endüstriye ve özellikle de yollarınızın geçip geçmeyeceğini görmek için Linux'a göz atın. Hiç şüphesiz zamanı geldiğinde anlayabilirsin. Kim bilir, bir Linux projesi yarın yolunuza çıkabilir.


1

Her zaman Windows ortamında kodladım. Benim için Linux, Windows'umun sıkıntıya girmesi durumunda yedek olarak sahip olacağım başka bir işletim sistemi idi. Sadece temel komutları biliyordum ve üzerinde yapmaya çalıştığım her şey zor görünüyordu. Ama şimdi bir web geliştiricisi olarak şu anki işimde hepimiz Linux kullanıyoruz, bu yüzden onu öğrenmeye ve her şey için kullanmaya zorluyorum. Ne kadar çok kullanırsam, o kadar çok hoşuma gider ve bence çok daha verimli ve esnek. Daha önce Linux ile daha fazla uğraşmadığım için pişmanım. Şimdi sadece yetişiyorum.

Yani evet, ne zaman istersen öğrenmelisin.


1

Linux, araç kutunuzdaki bir araçtır, aynı Windows’un bir araç olduğu gibi. Her ikisinde de akıcı olmak, bazı şeyleri daha iyi yapmanıza izin verir ancak diğer şeyler için anlamsızdır.

Şahsen Linux'u Ubuntu formunda çok faydalı buldum, çünkü lisans maliyetlerini göz önünde bulundurmadan bir veritabanı sunucusu, posta sunucusu, test web sunucusu ve sanal makinelerde çok daha fazlasını kolayca oluşturup korumamı sağlıyor. Sunucu sürümleri Windows'tan daha az kaynak gerektirir). Bunların hiçbirini yapmazsanız, Linux'un sizin için önemli olacağını sanmıyorum.


0

Eğer yeterince bilin niyetinde belli OS dağıtmak için, o zaman uygulama üzerinde çalışmasını sağlamak, ancak aksi takdirde ... sen yok olması şey / her şeyi bilmek.


geliştirdiğinizden farklı bir işletim sistemi kullanıyorsanız , yeni işletim sistemi hakkında çok fazla bilgiye ihtiyacınız olabilir . Büyük bir faktör, uygulamanızda ne kadar düşük seviye fonksiyonelliğin mevcut olduğudur (yani herhangi bir seri port tipi erişim)
Patrick

0

.NET yapmıyorsam, Linux kullanmayı tercih ederim. LAMP yığını bana WAMP'tan daha doğal geliyor.

Microsoft'tan başka bir şeyi öğrenmekle ilgileniyorsanız kesinlikle öğrenmenizi tavsiye ederim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.