В OSX установите скрипт переименования из Homebrew:
brew install rename
. Тогда вы можете сделать это очень смешно:
rename -e 's/.*/$N.jpg/' *.jpg
Или добавить красивый префикс:
rename -e 's/.*/photo-$N.jpg/' *.jpg
Большинство из них намного глубже, чем то, на что многие разработчики упали в моем опыте. Большинство неправильно понятых (и важных) аспектов в моем опыте:
На «переменные против объектов» спереди, вот три утверждения о коде
string x = "hello";
x
- строка из 5 букв x
- ссылка на строку из 5 букв x
является ссылкой на строку из 5 букв Очевидно, что первые два в порядке в «случайном» разговоре , но только если все участники понимают реальную ситуацию.
Обновленный: чтение соответствующих частей книжного CLR через C# Jeffrey Richter.. эта книга может быть хорошей ссылкой..
великий программист не может быть измерен количеством вещей, которые он знает о CLR. Конечно, это хорошее начало, но он также должен знать OOP / D / A и много других вещей, таких как шаблоны проектирования, лучшие практики, концепции O / RM и т. Д.
На самом деле я бы сказал, что «великому программисту .Net» не нужно вообще много знать о CLR, если он обладает большими знаниями в области общей теории и концепций программирования ...
Я бы предпочел нанять «великого разработчика Java» с большими общими знаниями и опытом в Java для работы .Net, чем «мастера» в .Net, у которого мало опыта и который думает, что O / RM - это биржевой тикер и хранимые процедуры. отличный способ "абстрагировать базу данных" ...
Я видел профессиональных учителей в .Net, совершенно не в состоянии делать действительно простые вещи, не ломая их спины из-за отсутствия «общих знаний», в то время как они в то же время «знают все», что нужно знать о .Net и CLR ...
Ответ Jon, кажется, довольно завершен мне (плюс делегаты), но я думаю, что существенно отделяется, хороший программист от среднего отвечает почему вопросы, а не как. Замечательно знать, как работают сборки "мусора" и как типы значения и работа ссылочных типов, но это - целый другой уровень для понимания, когда использовать тип значения по сравнению со ссылочным типом. Вот в чем разница между разговором на языке по сравнению с тем, чтобы произносить речь на языке (это - все о том, как мы применяем знание, которое мы имеем и как мы приходим к тем решениям).
Ответ Jon хорош. Те - все довольно основные, но важные области, из которых у большого количества разработчиков нет хорошего понимания. Я думаю, зная, что различие между значением и ссылочными типами соединяется к основному пониманию того, как GC в.NET ведет себя, но что еще более важно, хорошее понимание Расположить шаблона важно.
Остальная часть областей, которые Вы упоминаете, является или очень глубокими знаниями о самом CLR или более усовершенствованными понятиями, которые (еще) широко не используются. [.NET 4.0 начнет изменять часть этого с введением параллельных расширений и MEF.]
Одна вещь, которую может быть действительно сложно понять, это отсроченное исполнение и лайки.
Как вы объясните, как работает метод, который возвращает IEnumerable? Что на самом деле делает делегат? такие вещи.